Spring IOC配置与应用
2016-08-11 15:48
127 查看
1.FAQ:XML不给提示:
a) window – preferences – xml – xml catalog
b) User Specified Entries – add
i. Location: D:\share\0900_Spring\soft\spring-framework-2.5.6\dist\resources\spring-beans-2.5.xsd
ii. URI: file:///D:/share/0900_Spring/soft/spring-framework-2.5.6/dist/resources/spring-beans-2.5.xsd
iii. KeyType: Schema Location
iv. Key: http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
配置的是xml里的相关参数:
具体XML教程去看网盘下的《尚学堂马士兵视频教程_XML_AJAX_DOM4J_JavaDB_MetaData.rar》。
2.注入类型
在spring配置文件中,bean标签是创建一个对象,ref标签是参考一个对象。
a) setter(重要)
bean.xml文件中:
类UserService中:
b) 构造方法(可以忘记)【具体参看Spring Framework 开发参考手册】
beans.xml中:
UserService中建立UserDao的构造器:
报这个错java.lang.IllegalStateException: BeanFactory not initialized or already closed,是因为Spring实例化BeanFactory的时候是默认到classPath下面查找名为applicationContext.xml的文件。
c) 接口注入(可以忘记)
3. id vs. name
beans.xml中的bean标签的id可以用name代替,而且name可以用特殊字符。
4. 简单属性的注入
UserDaoImpl类中的两个简单属性
可以在beans.xml中设置值
元素通过人可以理解的字符串来指定属性或构造器参数的值。正如前面所提到的,JavaBean PropertyEditor将用于把字符串从java.lang.String类型转化为实际的属性或参数类型。
主要实现:配置连接池
和 元素中也可以使用’value’ 属性,这样会使我们的配置更简洁,比如下面的配置:
Spring团队更倾向采用属性方式(使用value元素)来定义value值。
5.bean的生命范围scope
singleton:在每个Spring IoC容器中一个bean定义对应一个对象实例。
prototype:一个bean定义对应多个对象实例。
6.集合装配(很少用,不重要)
对集合set、list、map进行装配。
beans.xml配置:
UserDaoImpl中声明三个集合,生成对应set、get方法。
JUnit测试
测试的时候屡次不成功,思前想后没有问题,复制了报错trace仔细看了一下,是beans.xml里的lists的L大写了。。。以后测试报错的时候最好复制trace仔细查看就好。
a) window – preferences – xml – xml catalog
b) User Specified Entries – add
i. Location: D:\share\0900_Spring\soft\spring-framework-2.5.6\dist\resources\spring-beans-2.5.xsd
ii. URI: file:///D:/share/0900_Spring/soft/spring-framework-2.5.6/dist/resources/spring-beans-2.5.xsd
iii. KeyType: Schema Location
iv. Key: http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
配置的是xml里的相关参数:
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
具体XML教程去看网盘下的《尚学堂马士兵视频教程_XML_AJAX_DOM4J_JavaDB_MetaData.rar》。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="u" class="com.dao.impl.UserDaoImpl"> </bean> <bean id="userService" class="com.service.UserService"> <property name="userDao" ref="u"></property> </bean> </beans>
2.注入类型
在spring配置文件中,bean标签是创建一个对象,ref标签是参考一个对象。
a) setter(重要)
bean.xml文件中:
<bean id="userService" class="com.service.UserService"> **<property name="userDao" ref="u"></property>** </bean>
类UserService中:
public class UserService { private UserDao userDao; public void add(User u){ this.userDao.save(u); } public UserDao getUserDao() { return userDao; } public void setUserDao(UserDao userDao) { this.userDao = userDao; } }
b) 构造方法(可以忘记)【具体参看Spring Framework 开发参考手册】
beans.xml中:
<bean id="userService" class="com.service.UserService"> <!-- <property name="userDao" ref="u"></property> --> <constructor-arg> <ref bean="u"/> </constructor-arg> </bean>
UserService中建立UserDao的构造器:
public UserService(UserDao userDao) { super(); this.userDao = userDao; }
报这个错java.lang.IllegalStateException: BeanFactory not initialized or already closed,是因为Spring实例化BeanFactory的时候是默认到classPath下面查找名为applicationContext.xml的文件。
c) 接口注入(可以忘记)
3. id vs. name
beans.xml中的bean标签的id可以用name代替,而且name可以用特殊字符。
4. 简单属性的注入
UserDaoImpl类中的两个简单属性
private int daoId; private String daoStatus;
可以在beans.xml中设置值
<bean id="userDao" class="com.dao.impl.UserDaoImpl"> <property name="daoId" value="0"></property> <property name="daoStatus" value="good"></property> </bean>
元素通过人可以理解的字符串来指定属性或构造器参数的值。正如前面所提到的,JavaBean PropertyEditor将用于把字符串从java.lang.String类型转化为实际的属性或参数类型。
主要实现:配置连接池
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <!-- results in a setDriverClassName(String) call --> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost:3306/mydb</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>masterkaoli</value> </property> </bean>
和 元素中也可以使用’value’ 属性,这样会使我们的配置更简洁,比如下面的配置:
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <!-- results in a setDriverClassName(String) call --> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mydb"/> <property name="username" value="root"/> <property name="password" value="masterkaoli"/> </bean>
Spring团队更倾向采用属性方式(使用value元素)来定义value值。
5.bean的生命范围scope
singleton:在每个Spring IoC容器中一个bean定义对应一个对象实例。
prototype:一个bean定义对应多个对象实例。
<bean id="u" class="com.dao.impl.UserDaoImpl" scope="prototype"> <property name="daoId" value="0"></property> <property name="daoStatus" value="good"></property> </bean>
6.集合装配(很少用,不重要)
对集合set、list、map进行装配。
beans.xml配置:
<property name="sets"> <set> <value>1</value> <value>2</value> </set> </property> <property name="lists"> <list> <value>3</value> <value>4</value> <value>5</value> </list> </property> <property name="map"> <map> <entry> <key> <value>key</value> </key> <value>value</value> </entry> <entry> <key> <value>435345</value> </key> <value>983749</value> </entry> </map> </property>
UserDaoImpl中声明三个集合,生成对应set、get方法。
private Set<String> sets; private List<String> lists; private Map<String,String> map;
JUnit测试
public void testAdd() throws Exception { ApplicationContext factory = new ClassPathXmlApplicationContext("beans.xml"); UserDao dao = (UserDao) factory.getBean("u"); System.out.println(dao); }
测试的时候屡次不成功,思前想后没有问题,复制了报错trace仔细看了一下,是beans.xml里的lists的L大写了。。。以后测试报错的时候最好复制trace仔细查看就好。
相关文章推荐
- Spring IOC配置与应用
- Spring IOC配置与应用(马士兵Spring视频)
- 快速配置weblogic8.X的应用目录
- 使用Log4j为项目配置日志输出应用详解以及示例演示的实现分析
- 如何配置和部署安全的.NET三层应用
- VxWorks操作系统指南(2.2) 应用系统配置
- 在Tomcat中配置应用Context的一些差异与注意事项。
- Hibernate配置文件在单元测试中的应用
- Eclipse下配置spring应用
- 动态修改Tuxedo应用系统的配置(转自BEA)
- 快速配置weblogic8.X的应用目录
- 配置IBMHTTPServer和WebSphereApplicationServer连接优化应用服务器性能
- 学习Struts(3)-配置Struts应用
- [Struts]配置第一个Struts 应用
- 快速配置weblogic8.X的应用目录[转载]
- 快速配置weblogic8.X的应用目录
- log4net 配置与应用
- hibernate应用配置说明
- jboss下通过配置log4j.xml实现web应用的日志
- 配置Struts应用(1)