美文网首页
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