Spring Bean管理(注解方式)之属性注入的注解

Spring的属性注入-注解方式

使用@AutoWired进行自动注入

@AutoWired默认按照类型进行注入

– 如果存在两个相同Bean类型相同,则按照名称注入

@AutoWired注入时可以针对成员变量或者set方法

通过@AutoWired的required属性,设置一定要找到匹配的Bean

使用@Qualifier指定注入Bean的名称

使用Qualifier指定Bean名称后,注解Bean必须指定相同名称

Spring提供对JSR-250中定义@Resource标准注解的支持

@Resource和@AutoWired注解功能相似

代码演示

如果是简单类型的值的话,我们可以直接写上一个注解value,比如在UserService中

public class UserService {
    @Value("米饭")
    private String something;

    public String sayHello(String name){
        return "Hello" + name;
    }

    public void eat(){
        System.out.println("eat:"+something);
    }

}

SpringDemo1中写一个测试方法

@Test
public void demo2(){
    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");

    UserService userService = (UserService) applicationContext.getBean("userService");

    userService.eat();
}

运行程序,直接输出了“米饭”,使用注解的方式,都可以直接没有set,get方法,当然开发中这种简单属性注入并不多。

新建一个类UserDao

@Repository("userDao")
public class UserDao {
    public void save(){
        System.out.println("DAO中保存用户...");
    }
}

UserService中也写一个保存方法

public void save(){
        System.out.println("Service中保存用户...");
        userDao.save();
}

此时需要调用Dao,这个时候我们就要注入Dao了,使用@Autowired完成注入

public class UserService {
    @Value("米饭")
    private String something;
    @Autowired
    private String userDao;

    public String sayHello(String name){
        return "Hello" + name;
    }

    public void eat(){
        System.out.println("eat:"+something);
    }

}

运行程序,Service和Dao中的方法都被调用了

本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
极客文库 » Spring Bean管理(注解方式)之属性注入的注解

Leave a Reply

欢迎加入「极客文库」,成为原创作者从这里开始!

立即加入 了解更多