spring简单笔记

1.普通注入
	1)构造器注入
		<constructor-arg name="id" value="100" /> #直接赋值
		<constructor-arg name="userDAO" ref="userDAO" /> #注入bean
	2)setter注入
		<property name="song" value="goodbye my love" /> #注入值
		<property name="instrument" ref="piano" /> #注入bean

2.注解注入
	1)context:scan + @Autowired可减少spring的xml配置,并可自动注入所需的bean到到指定的属性中
		<context:component-scan base-package="com.springinaction.demo" />

	2)@Autowired 和 @Resource的区别在于,@Autowired默认为按类型注入,@resource默认按照名称装配。
		推荐使用@Resource,可避免有多个同类型bean时出现的注入错误。
		@Autowired和@Qualifier联合使用可达到@Resource相同的效果。
		如:
		@Autowired
		@Qualifier("userDAOImpl")
		private IUserDAO userDAO;

3.数据源设置(DriverManagerDataSource不支持连接池)
	<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
		<property name="url" value="jdbc:mysql://localhost:3306/test" />
		<property name="username" value="test" />
		<property name="password" value="test" />
	</bean>

	<bean id="jdbcTemplate"
		class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource">
			<ref bean="dataSource" />
		</property>
	</bean>
*)推荐使用支持连接池的BasicDataSource, DBCP2和DBCP有些细微差异,比如:DBCP2没有了maxActive属性,maxWait属性改成了maxWaitMillis
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
              <property name="driverClassName">
                     <value>oracle.jdbc.driver.OracleDriver</value>
              </property>
              <property name="url">
                     <value>jdbc:oracle:thin:@localhost:1521:orcl</value>
              </property>
              <property name="username">
                     <value>test</value>
              </property>
              <property name="password">
                     <value>test</value>
              </property>
              <property name="maxActive">
                     <value>255</value>
              </property>
              <property name="maxIdle">
                     <value>2</value>
              </property>
              <property name="maxWait">
                     <value>120000</value>
              </property>
	</bean> 

4.使用jdbc.properties文件
	#jdbc.properties文件内容如下:
	jdbc.driverClassName=com.mysql.jdbc.Driver
	jdbc.url=jdbc:mysql://localhost:3306/test
	jdbc.username=test
	jdbc.password=test

	#在spring的xml添加如下内容,即可使用属性变量(${jdbc.driverClassName}/${jdbc.url}等):
	<bean id="propertyConfigurer"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="location">
			<value>classpath:jdbc.properties</value>
		</property>
	</bean>

	<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
              <property name="driverClassName">
                     <value>${jdbc.driverClassName}</value>
              </property>
              <property name="url">
                     <value>${jdbc.url}</value>
              </property>
              <property name="username">
                     <value>${jdbc.username}</value>
              </property>
              <property name="password">
                     <value>${jdbc.password}</value>
              </property>
              <property name="maxIdle">
                     <value>2</value>
              </property>
              <property name="maxWaitMillis">
                     <value>120000</value>
              </property>
	</bean>
上一篇:linux优化之SElinux关闭


下一篇:Hibernate内测总结