1、将对象注册到容器中
在配置文件applicationContext.xml中配置如下代码,可将对象匹配进来:
<!-- 指定扫描cn.itcast.bean包下的所有类中的注解
注意:在扫描时,会扫描指定包下的所有的子孙包
但不会扫描所有的父包
-->
<context:component-scan base-package="cn.itcast.bean"></context:component-scan>
2、修改对象的作用范围
在对象文件下,再类前面添加
- @Component("user") //这句话相当于applicationContext.xml下的配置:<bean name="user" class="cn.itcast.bean"/>
- @Service("user") //注册service层
- @Controller("user") //注册web层
- @Repository("user") //注册dao层
- @Scope(scopeName="prototype") //指定对象的作用范围,prototype表示为多例对象,singleton表示为单例对象
3、值类型注入
在实体中,有两种情况
(1)在变量前赋值,这种方式:是通过反射的filed赋值,破坏了封装性(不建议使用)
@Value("tom")//值类型赋值
private String name;
(2)在set前赋值:通过set方法赋值(推荐使用)
@Value("tom")//值类型赋值
public void setName(String name) {
this.name = name;
}
4、引用类型注入(car为另一个对象)
(1)@Autowired //自动装配
//自动装配有问题:如果匹配多个类型一致的对象,将无法选择具体注入哪一个对象
(2)@Qualifier("car2") //使用@Qualifier注解,告诉spring容器自动装配哪个名称的对象
(3)@Resource(name="car2") //手动注入,告诉spring容器手动注入哪个名称的对象
5、初始化&销毁方法
@PostConstruct //在对象被创建后调用,相当于以前的init-method方法
public void init() {
System.out.println("我是初始化方法");
}
@PreDestroy //在销毁之前调用,相当于以前的destory-method方法
public void destory() {
System.out.println("我是销毁方法");
}
6、spring与junit整合配置
(1)导包
(2)书写配置(在测试文件Demo.java中)
import cn.itcast.bean.User;
@RunWith(SpringJUnit4ClassRunner.class) //帮我们创建容器
@ContextConfiguration("classpath:applicationContext.xml") //制定创建容器时使用哪个配置文件
public class Demo {
@Resource(name="user") //将名为user的对象注入到u变量中
private User u;
}
(3)测试(在测试文件Demo.java中)
@Test
public void fun1() {
System.out.println(u);
}