简介
- Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。
- Spring并不想取代那些已有的框架,而是与它们无缝地整合。
配置方式
xml
- bean元素,交由Spring管理的对象配置在bean元素中
- 创建方式:空参构造(默认)、静态工厂、动态工厂
- 初始化方法Init-method,销毁方法destroy-method:使用的是对象中方法名。
- Scope属性:singleton、protoptype、request、session;
<!--配置示例 -->
<bean name="user" class="my.bean.User" lazy-init="true" scope="singleton" init-method="userinit" destroy-method="userdes">
<property name="u_id" value="2"></property>
</bean>
- 属性注入
- Set方法:类中需要实现set方法
<bean id="user" class="com.spring.demo.User">
<property name="username" value="xiaoming"></property>
</bean>
</beans>
- 构造函数注入;
<bean id="user" class="com.spring.demo.User">
<constructor-arg index="0">
<value>赋值</value>
</constructor-arg>
</bean>
constructor-arg中由 index=“0”开始,表明为构造函数第一个参数,同理index=“1”表明为构造函数第二个参数,value给参数赋值
注解
- 将对象注册到容器内
//@Controller() //对应web层
@Service("user") //对应service
//@Repository() //对应dao层
public class User2 {
- 配置scope
@scope(“prototype”)
//类
- 构造方法后调用方法
//在构造方法后调用
@PostConstruct()
public void userInit() {
System.out.println("user init ");
}
- 在销毁方法前调用
//在销毁方法前调用
@PreDestroy()
public void userDestroy() {
System.out.println("user destroy");
}
- 值注入
@Value("老王") //推荐在set方法上注入
public void setU_username(String u_username) {
this.u_username = u_username;
}
- 引用注入
//自动装配
//@Autowired
//手动指定
@Resource(name="dog")
public void setU_pet(Pet u_pet) {
this.u_pet = u_pet;
}
- 使用@RunWith注解创建spring容器
- 使用@ContextConfiguration读取spring配置文件;
@RunWith(SpringJUnit4ClassRunner.class)//创建容器
@ContextConfiguration("classpath:applicationContext.xml")//读取配置文件