1。SpringJDBC简介那么什么是SpringJDBC呢?SpringJDBC是Spring框架的基本模块之一。它是Spring框架为简化JDBC编程而提供的一组API。你只需要声明SQL语句,调用合适的SpringJDBC框架API,处理结果集。剩下的java训练全部交给SpringJDBC来完成。下图展示了SpringJDBC在Spring框架中的状态。SpringJDBC通常用在三层架构和MVC模式中,那么它在三层架构和MVC模式中的定位是什么?看下图,描述了SpringJDBC在三层架构和MVC模型中的地位。SpringJDBC提供了三种方法来简化JDBC编程,分别是JDBC模板方法、关系数据库对象化方法和SimpleJdbc方法。本章介绍JDBC模板方法。模板方法的核心JdbcTemplate类为我们完成了资源的创建和释放,从而简化了我们对JDBC的使用。它还可以帮助我们避免一些常见的错误,例如忘记关闭数据库连接。JdbcTemplate将完成JDBC核心处理流程,如Connection对象的创建、PreparedStatement对象的创建、SQL语句的执行、事务的启动与提交、资源的释放、存储过程的调用等。SQL语句的拼写和查询结果的提取留给我们的应用程序代码。2.SpringJDBC模块?core为核心包,包含了JDBC的核心功能。这个包中有很多重要的类,包括:JdbcTemplate、SimpleJdbcInsert类、SimpleJdbcCall类和NamedParameterJdbcTemplate类。?datasource是数据源包,包含访问数据源的实用类,有多种数据源实现。?object是对象包,以面向对象的方式访问数据库。它允许执行查询并返回业务对象。它可以将查询结果映射到数据表的列和业务对象的属性之间。?support是支持包,是核心包和对象包的支持类,比如提供异常转换功能的SQLException类。3、JdbcTemplate类JdbcTemplate类是SpringJDBC的核心类,它提供了一套操作SQL语句的API。使用该类时,需要为其设置一个数据源,需要在数据源中设置驱动、连接字符串、用户名、密码、数据库名等重要信息,如下图所示。4.spring优化配置?annotation-config在spring中,bean依赖注入有两种方式,第一种使用xml配置,第二种使用注解配置。在前面的课程中,已经学习了xml的配置方法。本章讲解注解配置方法。Spring开发组推荐使用注解配置方式。实现注解方法需要2个步骤。1:启用注解配置在spring配置文件中,启用注解配置...该配置隐式注册处理器类,用于解析和处理注解。2:标记@ResourcepublicclassDeptService{@Resource(name="deptDao")privateDeptDaodeptDao=null;//省略部分代码}DeptService类的属性deptDao用@Resource(name="deptDao")标记,意思是告诉Spring容器将Spring容器中bean名称为deptDao的bean对象注入到DeptService类的属性deptDao。@Resource(name="deptDao")privateDeptDaodeptDao=null;相当于所以使用注解配置后,就不需要xml配置了。@Resource注解位于javax.annotation包中,是web容器提供的注解。Spring容器还提供了属性注入注解,包括@Autowired和@Qualifier。?@Resource@Resource注释可以标记在属性和方法上。默认情况下,根据对象名称注入属性值。如果根据名称找不到依赖对象,则根据类型查找依赖对象。对象名称可以由@Resource注释的name属性指定。如果不指定name属性,当在property上标记@Resource时,会使用propertyname作为beanname来查找依赖对象。当@Resource标记在属性的set方法上时,以属性名作为bean名来查找依赖对象。如果不指定name属性,按照默认name还是找不到依赖对象,@Resource注解会回退到按类型匹配。一旦指定了name属性,就只能通过name来注入。?@Autowired@Autowired注解根据类型注入。默认情况下,它要求依赖对象必须存在。如果允许为空,则可以将其required属性设置为false。?@Qualifier@Autowired根据类型注入。如果@Autowired想使用对象名注入,可以结合@Qualifier注解使用。@Qualifier注释确定注入的对象名称。?component-scancontext:annotation-config/可以实现属性的值注入,从而简化xml的配置,但是bean对象的创建仍然需要在xml文件中定义。Spring引入了自动组件扫描机制。它可以在指定的包下搜索带有@Component、@Service、@Controller、@Respository注解的类,然后自动创建该类的对象,交给spring容器管理。这些注解的作用和xml中的bean节点配置是一样的,进一步简化了xml的配置。使用component-scan需要两步1:启用component-scan配置在spring配置文件中,启用component-scan配置......此配置隐藏注册处理器类以解析注释。base-package属性指定需要扫描的包及其子包。2:在类名上标注注解在类名上可以标注的注解有@Component、@Service、@Controller、@Respository。@Service用于配置在业务类上,@Controller用于配置在控制器上,@Respository用于配置在数组访问组件上,@Component用于配置在除上述三个组件之外的组件上。这些注解并没有严格区分必须使用哪些组件。其实@Controller注解也可以用在业务类上。之所以这样区分只是为了方便识别是业务类还是控制器。?@Service("deptService")标记在DeptService类上,意思是告诉Spring容器负责创建DeptService类的对象,并将创建的对象的名称设置为deptService。?@Scope可以通过@scope注解设置bean的作用域@Service("deptService")@Scope("prototype")publicclassDeptService{@Resource(name="deptDao")privateDeptDaodeptDao=null;publicListfindAll(){returndeptDao.findAll();}}范围值包括单例、原型、请求、会话@PostConstruct@PreDestroy可以通过@PostConstruct设置bean初始化时调用的方法,可以是通过@PreDestroyCall方法设置bean销毁时的设置?基于Java的spring大量的XML配置和复杂的依赖管理一直被诟病。为了实现无XML的开发体验,Spring加入了基于Java的开发模型。@Configuration、@Bean、@ImportResource、@ComponentScan等注解用于基于Java的开发模式。?@Bean注解用于注解一个方法,表示一个方法实例化、配置和初始化一个新的由Spring容器管理的bean对象。@Bean注解相当于xml配置文件中的注解。@Bean通常与@Configuration注解一起使用。?@Configuration注解用于注解类,被@Configuration注解注解的类将作为bean定义的来源。另外,@Configuration类允许bean之间的依赖关系,只需调用类中的其他@Bean方法即可。在配置文件中。@Bean通常与@Configuration注解一起使用。?@Configuration注解用于注解类,被@Configuration注解注解的类将作为bean定义的来源。另外,@Configuration类允许bean之间的依赖关系,只需调用类中的其他@Bean方法即可。?@ImportResource注解标注在类上,表示该类引入的外部资源。