首页 > 编程语言 > 详细

Spring - 基于注解创建bean

时间:2019-05-17 10:44:34      阅读:118      评论:0      收藏:0      [点我收藏+]

1. 介绍

之前我们写的bean都是基于xml配置,而这文章是基于java 注解去实现创建bean,首先我们需要在之前的xml当中添加两个dtd

xmlns:context 和 xsi:schemaLocation

<?xml version="1.0" encoding="UTF-8" ?>
<beans   xmlns="http://www.springframework.org/schema/beans" 
         xmlns:context="http://www.springframework.org/schema/context"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.springframework.org/schema/beans 
         http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
         http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context.xsd">
        
     
</beans>

 

2.配置

只要对你需要添加注解创建bean的包进行扫描就可以了

<context:component-scan> 其中属性,base-package就写需要扫描的包全限路径即可

<?xml version="1.0" encoding="UTF-8" ?>
<beans   xmlns="http://www.springframework.org/schema/beans" 
         xmlns:context="http://www.springframework.org/schema/context"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.springframework.org/schema/beans 
         http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
         http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context.xsd">
        
    <context:component-scan base-package="com.test.spring.annotation"></context:component-scan>    
     
</beans>

 

3.注解讲解

  • 创建基本bean: @Component, 以下三种类型跟Component一样,只是叫法不一样而已
    • @Service
    • @Controller
    • @Repository

技术分享图片

 

    注入:三种不同的注入方式
    • @Autowired:以类型注入,意思就注入相同类型的实现类,这会有缺点,就会当有多个实现了相同接口的对象,就不知道注入谁了

技术分享图片

 

    • @Autowired+@Qualifier: 就是制定那个实现bean注入

技术分享图片

 

    • @Resource: 已名称注入

技术分享图片

 

    • 第四种是可以在setter方法上使用以上三种注解

技术分享图片

 

  • 设普通值:@Value

技术分享图片

 

 

完整类

@Component("userService")
public class UserServiceImpl implements UserService{

    /**
     * 第一种方式 注入
     */
    @Autowired
    private UserDao userDao_1;
    
    /**
     * 第二种方式 注入
     */
    @Autowired
    @Qualifier("userDao")
    private UserDao userDao_2;
    
    /**
     * 第三种方式 注入
     */
    @Resource("userDao")
    private UserDao userDao_3;
    
    
    private UserDao userDao_4;
    
    /**
     * 第四种方式 注入
     */
    @Autowired
    @Qualifier("userDao")
    public void setUserDao_4(UserDao userDao_4) {
        this.userDao_4 = userDao_4;
    }
    
    /**
     * 基本类型
     */
    @Value("Peter")
    public String name;
    
    public void addUser() {
        userDao_1.saveUser();
        
        userDao_2.saveUser();
        
        userDao_3.saveUser();
        
        userDao_4.saveUser();
    }

    public String toString() {
        return name;
    }
}

 

 

Spring - 基于注解创建bean

原文:https://www.cnblogs.com/oscar1987121/p/10879742.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!