1.导包
2.编写xml文件
举例:
此内容格式直接从文档中拷贝的
<?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.xsd">
<bean id="stu" class="com.zyj.springtest.bean.Student">
<property name="name" value="zs"></property>
</bean>
</beans>
3.在代码中Spring应用的上下文
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
4.生成对象
Student stu = context.getBean("stu",Student.class);
stu.study();
这个stu对象就是和正常new出来的一样
使用Spring依赖注入
示例:
<bean id="bdi" class="com.zyj.springtest.daoimp.BookDaoImp">
</bean>
<bean id="ibbi" class="com.zyj.springtest.bizimp.IBookBizImp">
<property name="dao" ref="bdi"></property>
</bean>
<bean id="bc" class="com.zyj.springtest.controller.BookController">
<property name="ib" ref="ibbi"></property>
</bean>
IBookBizImp
类中有个成员变量,变量名为dao
BookController
类中有个成员变量,变量名为ib
这里可以在xml文件中为这两个成员变量赋值
但是这两个成员变量需要有set
/get
方法
2.<bean>
标签中属性scope="xxxx"
-
prototype
:原型模式,每次通过getBean获取该bean就会新产生一个实例,创建后spring将不再对其管理 -
singleton
:单例模式,当spring创建applicationContext容器的时候,spring会欲初始化所有的该作用域实例,加上lazy-init就可以避免预处理 -
request
:每次请求都新产生一个实例,和prototype不同就是创建后,接下来的管理,spring依然在监听 -
session
:每次会话,同上