热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

spring怎么实现依赖注入DI

这篇文章主要介绍了spring怎么实现依赖注入DI的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇spring怎么实现依赖注

这篇文章主要介绍了spring怎么实现依赖注入DI的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇spring怎么实现依赖注入DI文章都会有所收获,下面我们一起来看看吧。

    spring依赖注入DI

    1、创建一个maven项目

    mvn archetype:generate -DarchetypeCatalog=internal

    2、修改pom.xml

    引入需要的依赖,首先spring-context,还是spring-test,最后还有junit。

    
            UTF-8
            4.3.7.RELEASE
        
     
        
            
                junit
                junit
                4.12
                test
            
            
            
                org.springframework
                spring-context
                ${springframework.version}
            
            
            
                org.springframework
                spring-test
                ${springframework.version}
            
     
        
        
            
                
                    org.apache.maven.plugins
                    maven-compiler-plugin
                    
                        1.8
                        1.8
                        utf-8
                    
                
                
                    maven-assembly-plugin
                    3.0.0
                    
                        
                            
                                com.xueyoucto.xueyou.App
                            
                        
                        
                            jar-with-dependencies
                        
                    
                    
                        
                            make-assembly 
                            package 
                            
                                single
                            
                        
                    
                
            
        

    3、添加类Person和Body

    package com.xueyou.demo;
    import org.springframework.stereotype.Component;
    @Component
    public class Person {
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        private String name;
    }
    package org.xueyou.demo;
    import org.springframework.stereotype.Component;
    @Component
    public class Body {
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        private int id;
    }

    4、在配置类App中,添加ComponentScan

    需要注意的是,这里需要指定扫描的包

    package com.xueyou.demo;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    /**
     * Hello world!
     */
    @Configuration
    @ComponentScan(basePackages = {"org.xueyou.demo","com.xueyou.demo"})
    public class App {
        public static void main(String[] args) {
            System.out.println("Hello World!");
        }
    }

    5、新建一个测试类

    package com.xueyou.demo;
    import org.junit.Assert;
    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;
    import org.xueyou.demo.Body;
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(classes = App.class)
    public class Springtest {
        @Autowired
        private Body body;
        @Autowired
        private Person person;
        @Test
        public void testBodyIsNull(){
            Assert.assertNotNull(body);
        }
        @Test
        public void testPersonIsNull(){
            Assert.assertNotNull(person);
        }
    }

    6、运行测试类

    结果如下:

    spring怎么实现依赖注入DI

    7、从运行结果中我们能看到

    Person类和Student类已经被依赖注入到spring中,spring能够使用这两个类了。 

    spring-test依赖无法使用问题

    
                org.springframework
                spring-test
                4.3.7.RELEASE
                test
    

    去掉

    test

    关于“spring怎么实现依赖注入DI”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“spring怎么实现依赖注入DI”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程笔记行业资讯频道。


    推荐阅读
    • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
    • 本文介绍了多因子选股模型在实际中的构建步骤,包括风险源分析、因子筛选和体系构建,并进行了模拟实证回测。在风险源分析中,从宏观、行业、公司和特殊因素四个角度分析了影响资产价格的因素。具体包括宏观经济运行和宏经济政策对证券市场的影响,以及行业类型、行业生命周期和行业政策对股票价格的影响。 ... [详细]
    • CF:3D City Model(小思维)问题解析和代码实现
      本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
    • 标题: ... [详细]
    • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
    • 如何搭建Java开发环境并开发WinCE项目
      本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
    • MyBatis多表查询与动态SQL使用
      本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
    • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
      文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
    • SpringMVC接收请求参数的方式总结
      本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
    • 基于Socket的多个客户端之间的聊天功能实现方法
      本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
    • SpringBoot整合SpringSecurity+JWT实现单点登录
      SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
    • 向QTextEdit拖放文件的方法及实现步骤
      本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
    • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
      本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
    • MyBatis错题分析解析及注意事项
      本文对MyBatis的错题进行了分析和解析,同时介绍了使用MyBatis时需要注意的一些事项,如resultMap的使用、SqlSession和SqlSessionFactory的获取方式、动态SQL中的else元素和when元素的使用、resource属性和url属性的配置方式、typeAliases的使用方法等。同时还指出了在属性名与查询字段名不一致时需要使用resultMap进行结果映射,而不能使用resultType。 ... [详细]
    • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
      本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
    author-avatar
    廊坊0316慢摇酒吧_196
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有