IOC基于注解创建对象和注入属性与完全注解开发

IOC基于注解创建对象和注入属性与完全注解开发,第1张

IOC基于注解创建对象和注入属性与完全注解开发 1基于注解创建对象

Spring针对Bean管理中船舰对象提供的注解

@Component @Service @Controller @Repository

第一步引入依赖

引入spring-aop-(版本).RELEASE.jar

第二步开启组件扫描




第三步在类的上面加上注解

//value可以不写,默认是类名称,首字母小写。value可以看成对象的id
@Component(value="book")
public class Book{
    public void add(){
        System.out.println("add");
}
}

第四步进行测试 

public class Test{
    @Test
    public void test(){
        ApplicationContext con=new ClassPathXmlApplicationContext("bean1.xml");
        Book book=con.getBean("book",Book.class);
        book.add();
}
}
2基于注解方式注入属性

@Autowired根据属性类型进行自动装配

@Qualifier根据名称进行注入

@Resource可以根据类型注入也可以根据名称注入

@Value注入普通类型属性

演示@Autowired根据属性类型进行自动装配

图书的属性Infor

@Component(value="infor")
public class Infor{
    public void add(){
        System.out.println("inforadd");
}
}
//value可以不写,默认是类名称,首字母小写
@Component(value="book")
public class Book{
//不需要添加set方法
    @Autowired
    private Info info;
    public void add(){
        System.out.println("add");
}
}
演示@Qualifier根据名称进行自动装配

//value可以不写,默认是类名称,首字母小写
@Component(value="book")
public class Book{
//不需要添加set方法
//要和Autowired一起使用
    @Autowired
    @Qualifier(value="infor")//value的值为Info对象的id
    private Info info;
    public void add(){
        System.out.println("add");
}
}

演示@Resource根据属性类型进行自动装配 

//value可以不写,默认是类名称,首字母小写
@Component(value="book")
public class Book{
    @Resource
    private Info info;
    public void add(){
        System.out.println("add");
}
}

演示@Resource根据名称进行自动装配

  

//value可以不写,默认是类名称,首字母小写
@Component(value="book")
public class Book{
    @Resource(name="info")
    private Info inat;
    public void add(){
        System.out.println("add");
}
}

 演示@value自动装配

//value可以不写,默认是类名称,首字母小写
@Component(value="book")
public class Book{
    @Value(value="spring")
    private String bname;
    @Resource(name="info")//name的值为Info对象的id
    private Info inat;
    public void add(){
        System.out.println("add");
}
}
3完全注解开发不写配置文件

新建一个配置类代替xml

@Configuration//作为配置类代替xml文件
@ConfigurationScan(basePackage={"com.spring"})
public class Confi{
    
}

编写测试代码 

public class Test(){
    public void test(){
        ApplicationContext con=new AnnotationConfigApplicationContext(Confi.class);//加载配置类
        Book book=con.getBean("book",Book.class);
        System.out.println(book);
}
}

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5697708.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存