java自带的一个注解,和@Autowired,@Qualifier组合用法和效果基本是一样
javax.annotation.Resource @Resource //不指定名称自动装配 @Resource(name="") //指定名称自动装配 使用注解开发bean在xml里注册,属性值通过注解注入
@component泛指各种组件,把普通pojo实例化到spring容器中,相当于配置文件中的bean,将该类在配置文件下注册到Spring容器中装配bean。类似的还有:
1、@controller 控制器(注入服务)
用于标注控制层,相当于struts中的action层
2、@service 服务(注入dao)
用于标注服务层,主要用来进行业务的逻辑处理
3、@repository(实现dao访问)
用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件.
生命周期,用法:在目标类上面声明
@Scope("singleton") @Configuration用于声明这是一个配置类
@Bean相当于在配置文件中注册bean
方法名为之前的id属性
方法返回值为之前的class属性
@Import导入其他配置类,等价于
<import resource="beans.xml"/>使用方法
@Import(Config.class) 示例代码pojo
//相当于在bean中注册,相当于在Spring IoC容器new一个对象 @Component public class User { @Value("CoLoo") public String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "User{" + "name='" + name + '\'' + '}'; } }config
@Configuration @ComponentScan("com.zh1z3ven.pojo") public class AppConfig { @Bean public User getUser(){ return new User(); } }test
public class MyTest { public static void main(String[] args) { ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); User user = context.getBean("user", User.class); System.out.println(user.getName()); } }