zoukankan      html  css  js  c++  java
  • Java方式bean的注入以及自动配置

    Java配置

    Java配置的本质上,就是使用一个Java类去代替xml配置,这种配置方式在目前最主流的Spring Boot中得到了广泛的使用。
    1、引入相关Spring相关依赖

    2、创建Java配置类:

    /**
    * 这是一个Java配置类,它的作用类似于applicationContext.xml配置文件
    * @author 叶小陌
    *
    */
    @Configuration
    public class JavaConfig {
    /**
    * 返回一个JavaBean的方法就类似于applicationContext.xml中的一个bean标签
    * <bean class="com.sxt.bean.Book" id="book"/>
    * @return
    * 默认情况下,id就是方法名,可以通过@bean注解的value或者name属性自定义方法名
    */
    @Bean(name="book")
    public Book getBook(){
    return new Book();
    }
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    3、加载Java配置

    public class Main1 {

    ApplicationContext ac;
    @Test
    public void test() {
    Book book = (Book) ac.getBean(Book.class);
    System.out.println(book);
    }
    @Before
    public void before(){
    ac = new AnnotationConfigApplicationContext(JavaConfig.class);
    }
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    自动配置

    xml 配置实现
    xml配置,主要通过四个注解,这四个注解,目前来说,功能是一样的:

    @Component,一般用在身份不明确的组件上
    @Service,一般用在Service层
    @controller,一般用在控制层
    @Repository,一般用在数据库访问层
    然后在xml文件中配置自动扫描:

    <context:component-scan base-package="com.sxt.bean"/>
    1
    如果有多个包需要扫描,多个包使用“,”隔开,也可以直接配置扫描父包。
    还可以配置扫描某个注解,如下:

    <context:component-scan base-package="com.sxt" use-default-filters="false">
    <context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
    </context:component-scan>
    1
    2
    3
    use-default-filters表示使用使用spring默认提供的过滤器,false表示不使用,true则表示使用。
    一般来说,true结合exclude-filter标签使用,表示除去某个注解
    false结合include标签使用,表示包含某个注解
    注意:Component是另外三个注解(Service、Controller、Repository)的父类。

    Java配置实现
    Java配置和xml配置基本一致,唯一不同的地方就是包扫描的方式。
    四个注解是一样的。
    包扫描是通过@ComponentScan来实现:

    @Configuration
    @ComponentScan("com.sxt.bean")
    public class JavaConfig {
    }
    1
    2
    3
    4
    Java配置一样可以实现精确的包扫描:

    @Configuration
    @ComponentScan(value="com.sxt.bean",useDefaultFilters=false,includeFilters={
    @ComponentScan.Filter(type=FilterType.ANNOTATION,value=Service.class)
    })
    public class JavaConfig {
    }
    1
    2
    3
    4
    5
    6

    ---------------------

  • 相关阅读:
    更改文件默认打开方式
    python数据分析高频词提取,pyecharts词云制作并保存
    pyecharts V1.x版本使用Map绘制地图修改主题背景色等
    设置随机请求头和使用代理
    【重学前端】JS基础-原型和原型链
    【重学前端】JS基础-变量和类型
    Bootstrap blog整页制作
    拉勾网 移动端流式布局与rem布局整页制作
    PC端管理后台整页制作
    QQ飞车官方首页(部分)制作
  • 原文地址:https://www.cnblogs.com/ly570/p/11179186.html
Copyright © 2011-2022 走看看