美文网首页
spring bean 注解方式注入

spring bean 注解方式注入

作者: 站在海边看远方 | 来源:发表于2019-03-13 21:19 被阅读0次

    spring bean xml配置
    上篇文章主要记录了spring的xml配置方式
    这里记录一下spring 的注解配置方式

    1.创建User类,添加注解

    @Component注解,类似于<bean id="user" class="..." />

    @Component
    public class User {
        public void print() {
            System.out.println("This is User !!!!");
        }
    }
    

    2.在spring配置文件中配置约束,开启注解扫描

    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd">
    
            <!-- 开启注解的扫描。到配置的包里面扫描类、方法、属性上面是否有注解 -->
            <context:component-scan base-package="com.fc.test.annoation" />
    
    
    </beans>
    

    3.junit测试

    public class UserTest {
        /** 
        * 
        * Method: print() 
        * 
        */ 
        @Test
        public void testPrint() throws Exception {
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
            User user = (User) context.getBean("user");
            user.print();
        } 
    
    
    } 
    

    4.测试结果

    This is User !!!!
    

    5.属性注入

    新建一个UserService类,作为业务层,新建一个UserDao类作为dao层,然后在userService里注入userDao

    @Service
    public class UserService {
        @Autowired
        private UserDao userDao;
        public void add() {
            System.out.println("service 层 -----");
            userDao.dao();
        }
    }
    
    
    @Repository
    public class UserDao {
        public void dao(){
            System.out.println("dao 层----");
        }
    }
    

    然后进行测试,测试和上面步骤相同
    @Autowired默认按类型注入,如果类型不匹配,按名称注入
    @Resource注解,它默认是按名称进行注入的,名称不匹配,再去按类型匹配。

    6.常用注解

    创建对象的注解有四个:

    @Component:作用在类上
    @Repository:用于对DAO实现类进行标注(持久层)。
    @Service:用于对Service实现类进行标注(业务层)。
    @Controller:用于对Controller实现类进行标注(WEB层)。
    后三个注解是Spring中提供的@Component的三个衍生注解(功能目前来讲是一样的),它们是为了让标注类本身的用途更清晰,Spring在后续的版本中会对其进行增强。

    7.bean的作用范围

    @Scope
    singleton:单例,默认值
    prototype:多例
    所以我们可通过注解设置创建对象是单例或者还是多实例的

    参考文章
    spring的bean管理(注解方式)

    相关文章

      网友评论

          本文标题:spring bean 注解方式注入

          本文链接:https://www.haomeiwen.com/subject/koqxmqtx.html