一.注入对象/属性

定义在变量(不推荐,破坏封装性)或setter上
首先在beans之间添加<context:annotation-config/>
@Autowired 生成Bean时会自动在容器里根据类型匹配

@Autowired
public void setCategory(Category category) {
    this.category = category;
}

@Resource(推荐) 可以注入指定name的bean。默认按名称,找不到名称按类型匹配

@Resource(name="c")
private Category category; 

二.对Bean的注解(扫描组件)

先新增<context:component-scan base-package="包名"/>
让容器自己去包里扫描,不需要再手动配置<bean></bean>
在源码的类增加@Component注解,即表明此类是bean,扫描到以后容器就生成一个bean

@Component("p")
public class Product {

另外,因为配置从applicationContext.xml中移出来了,所以属性初始化放在属性声明上进行。
常用注解:
@Compenent 通用注解

@Repository 持久层组件注解

@Service 业务层组件注解

@Controller 控制层组件处理

@Value 可以注入指定变量的值

@Scope 可以指定对象的作用域singleton(单例模式,默认)、prototype(多例模式)、request、session、global Session,

@Transactional 表示事务


Myosotis
89 声望13 粉丝