美文网首页
spring 学习04

spring 学习04

作者: 咸鱼佬 | 来源:发表于2018-09-10 22:59 被阅读8次

    装配Bean

    创建应用中对象之间协作关系的行为通常称为装配

    Spring配置的可选方案

    1. 在XML中进行显示配置
    2. 在Java中进行显示配置
    3. 隐式bean发现机制和自动装配

    自动化装配Bean

    spring从两个角度来实现自动化装配:

    • 组件扫描
    • 自动装配

    组件扫描和自动装配组合在一起就能发挥出强大的威力,它们能够将你的显式配置降低到最少

    工程例子

    mvn

    <dependencies>
    
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.0.2.RELEASE</version>
        </dependency>
    
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.0.2.RELEASE</version>
        </dependency>
    
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    
    </dependencies>
    

    配置类

    package com.demo.config;
    
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    
    /**
     * Created by jinxiong on 2018/9/9.
     */
    
    // 不写包路径的话为 扫描的是 此类的包以及子包
    @ComponentScan()
    @Configuration
    public class SpringConfig {
    }
    

    需要放置在Spring容器中的bean

    package com.demo.bean;
    
    import org.springframework.stereotype.Component;
    
    /**
     * Created by jinxiong on 2018/9/9.
     */
    @Component
    public class Person {
        
        private String name;
        private String address;
    }
    

    测试类

    package com.demo.test;
    
    import com.demo.bean.Person;
    import com.demo.config.SpringConfig;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(classes = SpringConfig.class)
    public class Test01 {
        
        @Autowired
        private Person person;
    
        @Test
        public void test01(){
            System.out.println(person.toString());
        }
    
    }
    

    通过Java代码装配Bean

    使用@Configuration注解,该注解表明这个类是一个配置类该类应该包含在Spring应用上下文创建bean的细节

    @Configuration
    public class BeanConfig {
        
        @Bean
        public Address address() {
            return new Address();
        }
    }
    

    通过XML装配bean

    <bean class="com.demo.bean.User" />
    

    因为没有指定bean的Id,默认就是 com.demo.bean.User#0 其中#0是计数形式,用来区分此类型的其他bean,比如你再声明一个User类型的bean并且不指定id 那么它的id就是com.demo.bean.User#1

    借助构造器注入初始化bean

    构造器注入,有两种基本的配置方案可供选择

    • <constructor-arg> 元素
    • 使用spring 3.0 引入的c-命名空间
    image
    image
    image

    设置属性

    image image image

    相关文章

      网友评论

          本文标题:spring 学习04

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