• spring相关—IOC容器—使用注解配置bean


    ①声明bean的注解
            @Component   将当前类声明为IOC容器中的一个普通的组件(除了下面三种外的组件)
            @Controller   将当前类声明为IOC容器中的一个控制器组件
            @Service    将当前类声明为IOC容器中的业务逻辑层组件
            @Repository    将当前类声明为IOC容器中的一个持久化层组件
        
        Spring根据上述注解其实并不能分辨当前类是否真的是一个控制器或Dao,即使标记的类和注解不对应也没有语法错误。
        但在实际工作中,肯定要将专门的注解标记在对应的类上面。   

    ②使用基于注解的bean的配置,需要额外导入一个jar包:spring-aop-4.0.0.RELEASE.jar   (spring中所有注解都是基于aop的,使用时要导入spring-aop-4.0.0.RELEASE.jar包)

    ③需要设置自动扫描的包
            < context:component-scan base-package ="com.neuedu.ioc.bean"/>


    ④使用注解后,默认按照类名首字母小写作为id的值,也可以使用value属性指定id,value属性名也可以省略注解        
            注解                                                      id值   
       @Component                                           commonComponent
       public class CommonComponent {
       }
       
       @Controller(value="neueduBookAction" )            neueduBookAction
       public class BookAction {
       }
            
       @Service("happyService" )                            happyService
       public class BookService {
       }

    ⑤使用注解进行自动装配:@Autowired注解[好处就是:连get、set方法都不用写!]

        @Autowired
        private UserDao dao;    
    //@Autowired直接将IOC容器中的UserDao对象注入

        [1]首先检测标记了@Autowired注解的属性的类型(开始根据类型注入,能确定唯一bean对象,则注入)
        [2]根据类型进行装配
        [3]如果指定类型的bean不止一个,那么根据需要被装配的属性的属性名做id的值,查找bean

      (此时根据属性名注入,看是否有匹配id)
        [4]如果根据id值还是没有找到bean,可以使用@Qualifier注解手动指定要装配的bean的id.

  • 相关阅读:
    System.InvalidOperationException: 找到多个与名为“Home”的控制器匹配的类型。
    MemoryStream和FileStream
    js的eval函数解析后台返回的json数据时为什加上圆括号eval("("+data+")"),而HTML页面定义的数据不用
    字符串转数组和数组转字符串
    npoi导入--从varchar数据类型到datetime数据类型转换产生一个超出范围的值问题
    IIS配置 Web部署 svg/woff/woff2字体 404错误
    委托由浅入深学习
    JavaScriptSerializer返回一条Json,页面获取值问题,数据绑定
    一文总结 CPU 基本知识
    Spring原理只要看这篇文章就够了
  • 原文地址:https://www.cnblogs.com/kangxingyue-210/p/7445726.html
Copyright © 2020-2023  润新知