栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring的构造注入和set注入

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring的构造注入和set注入

一、引入依赖
    
        
            mysql
            mysql-connector-java
            8.0.20
            runtime
        
        
            org.mybatis
            mybatis
            3.5.3
        
        
            junit
            junit
            4.12
            test
        
        
            org.projectlombok
            lombok
            1.16.18
            provided
        
        
            dev.tuxjsql
            hikaricp-cp
            2.1
        
        
            log4j
            log4j
            1.2.12
        
        
            org.slf4j
            slf4j-nop
            1.7.30
        
        
            org.apache.logging.log4j
            log4j-to-slf4j
            2.13.3
        
        
            net.sf.ehcache
            ehcache
            2.10.3
        

        
            org.springframework
            spring-core
            5.2.8.RELEASE
        
        
            org.springframework
            spring-beans
            5.2.8.RELEASE
        
        
            org.springframework
            spring-context
            5.2.8.RELEASE
        
        
            org.springframework
            spring-expression
            5.2.8.RELEASE
        
        
            org.springframework
            spring-aop
            5.2.8.RELEASE
        
        
            org.springframework
            spring-aspects
            5.2.8.RELEASE
        
        
            org.springframework
            spring-jdbc
            5.2.8.RELEASE
        
        
            org.springframework
            spring-test
            5.2.8.RELEASE
        
        
            org.aspectj
            aspectjweaver
            1.9.2
        
        
            aopalliance
            aopalliance
            1.0
        

    


    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.8.1
                
                    1.8
                    1.8
                    utf-8
                
            
        
        
            
                src/main/java
                
                    ***.xml
                
                false
            
            
                src/main/resources
                 ***.xml
                
                false
            
        
    

二、建立用户类

这里用来lombok插件,所以不用手动生成getter,setter,构造参数。不知道的话百度一下就好

@AllArgsConstructor
@NoArgsConstructor
@Data
public class User {

    private String name;
    private String age;

}

三、新建application.xml文件,构造注入

构造注入一共有三种方式,用哪一种看你的选择,一般名字注入最常用的。

这里都注销掉了,你要用的时候把你要用的那一种取消注销即可




    
        
        
        

        
        
        

        
        
        

        
        

    
四、测试

新建在已有的test包里

这个基本上就是固定的,getBean(User.class)里面的User.class可替换成"user",因为在application.xml文件里bean的id就是user,所以找的到

public class UserTest {

    @Test
    public void iocTest(){
        // 根据配置文件构建一个应用上下文
        ApplicationContext applicationContext =
                new ClassPathXmlApplicationContext("application.xml");
        //User user =  (User)applicationContext.getBean("user"); // 和下一句效果一样
        User user = applicationContext.getBean(User.class);

        User otherUser = applicationContext.getBean(User.class);
        System.out.println(user);

    }
}
五、set注入

1、新建地址类

@AllArgsConstructor
@NoArgsConstructor
@Data
public class Address {
    private String addressInfo;
}

 2、修改用户类

@AllArgsConstructor
@NoArgsConstructor
@Data
public class User {

    private String name;
    private Address address;
    //爱好
    private String[] hobbies;
    //职务
    private List duties;
    //家庭关系
    private Map familyTies;
    //购物车商品
    private Set carts;
    // 工作经历
    private Properties workExperience;
    // 女儿 null注入
    private String daughter;
}

3、修改application.xml




    
        
    

    
        
        
        
        
        
        
            
                篮球
                足球
                羽毛球
            
        
        
        
            
                厂长
                党委副书记
            
        
        
        
            
                
                
            
        
        
        
            
                韭菜
                鸡蛋
            
        
        
        
            
                工作两年
                工作一年
            
        
        
        
            
        

    


4、测试

还是之前的测试类,一个字都不用改

User(name=lucy, address=Address(addressInfo=北京八大胡同), hobbies=[篮球, 足球, 羽毛球], duties=[厂长, 党委副书记], familyTies={父亲=杨建国, 母亲=董悦}, carts=[韭菜, 鸡蛋], workExperience={阿里巴巴=工作两年, 百度=工作一年}, daughter=null)
五、自动装配

在上面的配置文件里其实已经有体现了。因为地址是User从Address里拿来的,所以配置文件里会有以下配置:

    
        
    

在bean这里加上autowire="byName",就会进行bean的自动装配,除了按名字进行自动装配,我们还可以根据类型,比如数据是Address这个类里面的,也会测试成功

所以,这里的地址引入我们可以注销掉,但在测试用例里我们依旧可以看到“北京八大胡同”

        
        

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/349318.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号