使用注解的方式依赖注入不用提供set方法
1.普通类型的注解
@Value
@Value(value="春天") private String name;
2.对象类型的注解
@Autowired --默认按类型自动装配
public interface UserDao { public void saveUser(); }
@Repository(value="userDao") public class UserDaoImpl implements UserDao { @Override public void saveUser() { System.out.println("持久层:保存客户.."); } }
@Autowired private UserDao userDao;
----------------------------------------------------------------------------------------------------------
@Qualifier
--强制使用名称注入,但是必须和@Autowired一起使用
@Autowired @Qualifier(value="userDao") private UserDao userDao;
----------------------------------------------------------------------------------------------------------
@Resource --相当于@Autowired和@Qualifier一起使用
注意:
1.@
是Java提供的注解Resource
2.属性使用name属性
@Resource(name="userDao") private UserDao userDao;
Bean的作用范围和周期注解
1.作用范围注解--@scope
@Scope(value="prototype")作用在类上。值如下:
* singleton -- 单例,默认值
* prototype -- 多例
2.生命周期注解
@PostConstruct -- 相当于init-method
@PostConstruct @Override public void start() { System.out.println("初始化持久层...."); }
---------------------------------
@PreDestroy -- 相当于destroy-method
@PreDestroy @Override public void end() { System.out.println("销毁持久层...."); }