SpringIoC及JdbcTemplate
自定义属性编辑器
Spring配置文件中的字符串转换成相应的对象进行进行注入,spring已经内置了属性编辑器,我们可以根据需求自定义属性编辑器
如何定义属性编辑器?
继承PropertyEditorSupport类,重写setAsText方法。
多配置文件加载
如果配置文件存在多个的情况下,加载配置文件的方式是:
1--可以指定总的配置文件去包含子的配置文件,然后只加载总的配置文件即可
在总配置文件中 eg:applicationContext.xml 引入子文件
<import resource="applicationContext-action.xml"/>
<import resource="applicationContext-dao.xml"/>
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
2--使用*来匹配多个文件进行家人在,文件名称要符合规律 (推荐使用)
多个配置文件为:
applicationContext-global.xml ---- 全局配置文件
applicationContext-user.xml ----用户模块配置文件
applicationContext-product.xml ----商品模块配置文件
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext-*.xml");
3--可以使用数组作为参数,一次性加载多个配置文件
String[] files = new String[4] ;
String[] files = new String[]{} ;
String[] files = {
"applicationContext-user.xml" ,
"applicationContext-cart.xml" ,
"applicationContext-order.xml"
};
ApplicationContext ac = new ClassPathXmlApplicationContext(files);
------------------------------------------------------------------------------
Spring IOC 中 bean的生命周期
创建一个Person类 实现相应的接口 eg: BeanNameAware , BeanFactoryAware , ApplicationContextAware , InitializingBean
实现各个接口的相应方法,就可以在bean实例创建完成之后进行相应的逻辑处理,例如:日志记录 、 销毁元素 .....
在spring IOC 容器中配置 BeanPostProcessor的实现类 ,达到在spring初始化bean过程中,处理各种辅助功能
eg:
public class InitBeanPostProcessor implements BeanPostProcessor {
@Override
public Object postProcessAfterInitialization(Object obj, String str)
throws BeansException {
System.out.println("postProcess---After---Initialization--" + obj +"----" + str);
return obj;
}
@Override
public Object postProcessBeforeInitialization(Object obj, String str)
throws BeansException {
System.out.println("postProcess---Before---Initialization--" + obj +"----" + str);
return obj;
}
}
配置:
<!--
这是一个bean初始化后置处理器 实现的是BeanPostProcessor接口 实现了其两个方法
当bean被初始化的时候,就会被调用 调用顺序请参照案例 运行结构
-->
<bean class="com.spring.day02.life.InitBeanPostProcessor"></bean>
--------------------------------------------------------------------------------------
Spring中数据库技术--获得DataSource
第一种:JNDI获得DataSource(对服务的种类有一定的依赖)
第二种:第三方连接池获得DataSource
A:Apache的DBCP方式
需要支持的jar包有两个 commons-dbcp2-2.1.1.jar commons-pool2-2.4.2.jar
详情请参考 案例
B:C3P0方式
第三种:Spring的DirverManagerDataSource方式(生产环境不用,测试环境可以使用)
--------------------------------------------------------------------------------------
spring的数据库技术---辅助类 JdbcTemplate
JdbcTemplate 是一个辅助类 ,他封装了JDBC的操作,非常方便。
使用模板方式封装jdbc数据库操作,固定的流程操作,提供丰富的callback回调接口功能,方便用户自定义加工细节,
更好模块化jdbc操作,简化传统JDBC操作的复杂和繁琐过程。
Sring的JdbcTemplate配置
JdbcTemplate的使用需要DataSource的支持,所以在配置文件中,我们首先要配置一个DataSource,
然后再将这个DataSource配置到JdbcTemplate中。最后将JdbcTemplate配置到DAO层
步骤:
1--增加导入两个jar包
spring-jdbc-4.2.1.RELEASE.jar
spring-tx-4.2.1.RELEASE.jar
2--在spring配置文件中,配置DataSource
3--配置jdbcTemplate
4--配置userDAO
5--写测试类
-------另外一种获取jdbcTemplate的方式-------------
继承JdbcDaoSupport方式
Spring提供了org.springframework.jdbc.core.JdbcDaoSupport类,其中定义了JdbcTemplate属性,也定义了DataSource属性。
当设置了DataSource属性的时候,会创建jdbcTemplate实例。所以自己编写的DAO只需要继承JdbcDaoSupport类,然后注入DataSource即可
浙公网安备 33010602011771号