用注解代替xml配置
1.首先在配置文件中打开注解配置xml的开关
<!--指定扫描包下的所有类中的注解,包括子包-->
<!--开启注解配置文件-->
<context:component-scan base-package="main.Bean"></context:component-scan>
2.在Bean的类中使用注解
@Component("user")
//<bean name="user" class="包名">
public class User {
}
3.在注解中功能一样,但是能够体现分层功能的注解
@Component("user")
//<bean name="user" class="包名">
推荐使用这三种
@Service("user") //service层
@Controller("user") //web层
@Repository("user") //dao层
4.在Bean中添加scope 指定对象的作用域
@Scope(scopeName="prototype")
5.使用value属性添加值(添加在set方法上也可以)
- 添加在字段名前面 是通过反射字段赋值 破坏了封装性
- 添加在set方法前面。是通过set方法赋值
添加在字段名前面 是通过反射字段赋值 破坏了封装性
@Value("tom")
private String name;
@Value("18")
private Integer age;
添加在set方法前面。是通过set方法赋值
@Value("tom")
public void setName(String name) {
this.name = name;
}
6.给对象赋值
这种自动装配当注册还好几个容器当中,无法选择具体注入哪一个对象。
@Autowired //自动装配
使用Qualifier注解告诉spring容器自动装配哪个名称的对象
@Qualifier(Car2)//自动装配
private Car car;
@Resource(name="Car2")//手动注入,指定注入哪个对象.推荐使用
private Car car;
7.两个特殊注解
@PostConstruct 在对象被创建后调用
@PreDestroy 在销毁之前调用
- Spring整合测试
@RunWith(SpringJUnit4ClassRunner.class)//帮我们创建容器
//指定创建容器时 使用哪个配置文件
@ContextConfiguration("classpath:applicationContext.xml")
public class Demo {
//将名为user对象注入到u中
@Resource(name = "user")
private User u;
网友评论