zoukankan      html  css  js  c++  java
  • Spring听课笔记(专题二下)

    第4章 Spring Bean基于注解的装配

    4.1 Bean的定义及作用域的注解实现

      1. Bean定义的注解

        -- @Component是一个通用注解,可用于任何bean

        -- @Repository, @Service, @Controller是更有针对性的注解,利用元注解继承自@Component

          -- @Repository通常用于注解DAO类,即持久层

          -- @Service通常用于注解Service类, 即服务层

          -- @Controller通常用于Controller类,即控制层(MVC)

      2.元注解:许多Spring提供的注解可以作为自己的代码,即"元数据注解", 元注解是一个简单的注解,可以应用到另外一个注解

        如,@Service继承了@Component的全部特性,其他的@Repository,@Controller也是如此

            

      

      3. Bean的命名由 BeanNameGenerator生成, 默认是类名的首字母小写。 可以自定义命名方式,只需要实现BeanNameGenerator接口即可,并一定要包含一个无参构造器     

      4.类的自动检测及Bean的注册

      (注意和上一章的  ”自动装配“ 的区别。自动装配是指依赖注入,自动检测是指发现bean,这里没有用xml配置bean,而是使用注解去自动检测bean)

          XML配置

          

         

         使用过滤器自定义扫描,如下图中的include和exclude

        

       5.Bean的作用域

         -- 使用@Scope注解,默认是singleton

          

         -- 还可以自定义scope策略,实现ScopeMetadataResolver接口并提供一个无参构造器

          

       6.代理方式:使用scoped-proxy属性指定代理,可选:no, interfaces, targetClass

          

    4.2-4.4 Bean的装配

      1.@Required 

        -- 适用于Bean属性的setter方法,这个注解仅仅表示,受影响的bean属性必须在配置时被填充,通过bean定义或者自动装配一个明确的属性值

        

      2.@Autowired

        -- 自动装配

        -- 可用于属性,构造器,setter方法

        -- 默认情况下,如果找不到合适的bean将会导致Autowiring失败抛出异常,可以通过下面方式避免,允许为null

            

        -- 每个类只能由一个构造器被标记为required=true

        -- @Autowired的必要属性,建议用@Required注解

        -- @Autowired可以注解依赖性接口,BeanFactory, ApplicationFactory, Environment, ResourceLoader, ApplicationEventPublisher, MessageSource等

            

        -- @Autowired是由Spring BeanPostProcessor处理的,所以不能在自己的BeanPostProcessor或者BeanFactoryPostProcess类型中应用这些注解,这些类型必须通过XML或者Spring的@Bean注解加载

      3.@Qualifier

        -- 有时候类型是接口的成员变量可能有多个实现类,@Qualifier 就是用来缩小范围的,指定使用那个接口的实现类来赋给当前的成员变量

          

        -- xml中也可以声明

          

        -- 实现自己的Qualifier注解

          

        --  @Autowired,@Resource, @Qualifier区别,(未懂)

          

     4.5-4.8 基于Java的容器注解

      一 @Configuration @Bean

      1.@Bean和@Configuration相当于是XML中类似的元素 

        

        其中的bean类似于

          

      2. 自定义Bean Name

        

      3.init-method, destroy-method

        

      4.在使用@Bean时,当没有指定类名,那么就是方法的名称 ,当然了,这个例子中就是"getStringStore",可以看出,get这个多余的词并没有被去除掉

         

      二. @ImportResource @Value

        比方说,要引用这个资源文件

          

        1.xml中配置

            

        2.Java配置

          

      3.需要注意的是,username要是不加jdbc,形成jdbc.username这样的结构,那么username可能会被调用操作系统的用户名。所以为了不重复,前面要加jdbc.这样的前缀

      三 @Scope

      默认是单例,可以改

        

       四. 基于泛型的自动装配

        1.比如说这两个类型

           1)接口

              

           2)String实现类

              

          3)Integer实现类

              

        2.使用泛型

          

    4.9 Spring对JSR的支持

      1.

        

      2.

        

        3.

          

        

  • 相关阅读:
    编程 判断 是否满足条件 的 验证代码。
    Javascript作用域详解。
    DateTable To Json
    反射_获取字段的Description信息
    C# Json格式
    jQuery选择器
    SQL日期格式转换
    【转载】#pragma once与#ifndef
    C++中的左值与右值
    HTML、CSS基础知识
  • 原文地址:https://www.cnblogs.com/heyboom/p/11244426.html
Copyright © 2011-2022 走看看