spring 杂记
spring3使用记录,方便以后回忆整理
1.spring3 注解
参考:http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-iocannt/
Spring 本身提供了一个丰富的并且是与具体的数据访问技术无关的数据访问异常结构,用于封装不同的持久层框架抛出的异常,使得异常独立于底层的框架。
<context:component-scan base-package="包名(可以不指定)" /><!-- 开启spring注解的自动扫描 -->
通过在类上使用 @Repository、@Component、@Service 和 @Constroller 注解
Spring 会自动创建相应的 BeanDefinition 对象,并注册到 ApplicationContext 中。这些类就成了 Spring 受管组件。这三个注解除了作用于不同软件层次的类,其使用方式与 @Repository 是完全相同的。
- @Repository 只能标注在 DAO 类上,该注解的作用不只是将类识别为 Bean,同时它还能将所标注的类中抛出的数据访问异常封装为 Spring 的数据访问异常类型。
- @Component 是一个泛化的概念,仅仅表示一个组件 (Bean) ,可以作用在任何层次。
- @Service 通常作用在业务层,但是目前该功能与 @Component 相同。
- @Constroller 通常作用在控制层,但是目前该功能与 @Component 相同。
使用 @Resource、@Autowired 和 @Qualifier 指定 Bean 的自动装配策略
2.动态加载配置参数
使用spring提供的PropertyPlaceholderConfigurer读取配置信息.properties
例子:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list><!-- 可加载多个properties文件 -->
<value>classpath*:dbaccess.properties</value>
<value>classpath*:connection.properties</value>
</list>
</property>
</bean>
connection.properties 文件中参数:
jdbc.0_0.url=${jdbc.base.url}
jdbc.0_0.username=acccyuc00
jdbc.0_0.password=qKoXqI/fxPYOnl4DgaffnaSpb+/nyq47
<!-- 当程序启动,加载bean时,connection.properties 中的参数自动替换到下面的配置文件中 -->
<bean id="dataSource_0_0" parent="abstractProxoolDataSource">
<property name="alias" value="dataSource_0_0" />
<property name="driverUrl" value="${jdbc.0_0.url}" />
<property name="user" value="${jdbc.0_0.username}" />
<property name="password" value="${jdbc.0_0.password}" />
</bean>