SpringBoot学习 (二)— 依赖注入
2017-03-11 16:23
323 查看
学习一下SpringBoot 之依赖注入
附上一篇很好的关于依赖注入的博客:http://blog.csdn.net/lisongjia123/article/details/52134396依赖注入就是Spring IoC容器创建bean(实例),不管是依赖注入,还是控制反转,都说明Spring采用动态、灵活的方式来管理各种对象。对象与对象之间的具体实现互相透明。在理解依赖注入之前,看如下这个问题在各种社会形态里如何解决:一个人(Java实例,调用者)需要一把斧子(Java实例,被调用者)。(1)原始社会里,几乎没有社会分工。需要斧子的人(调用者)只能自己去磨一把斧子(被调用者)。对应的情形为:Java程序里的调用者自己创建被调用者。(2)进入工业社会,工厂出现。斧子不再由普通人完成,而在工厂里被生产出来,此时需要斧子的人(调用者)找到工厂,购买斧子,无须关心斧子的制造过程。对应Java程序的简单工厂的设计模式。(3)进入“按需分配”社会,需要斧子的人不需要找到工厂,坐在家里发出一个简单指令:需要斧子。斧子就自然出现在他面前。对应Spring的依赖注入。也就说我们传统创建对象是 Person = new Person() ,关键字new创建bean现在我们创建bean通过依赖注入的方式一、创建一个maven工程
二、 在pom.xml添加Spring的依赖
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.youhu</groupId> <artifactId>spring4_di</artifactId> <version>1.0-SNAPSHOT</version> <properties> <java.version>1.8</java.version> </properties> <!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.1.6.RELEASE</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> </plugins> </build> </project>然后就看到idea自动导入了spring需要的包
三、 建四个class(代码如下)
DiConfig.java
package com.youhu.spring4_di.di;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;/*** @Description: TODO* @Author:You.Hu* @Create:2017-03-11 16:51*/@Configuration@ComponentScan("com.youhu.spring4_di.di")public class DiConfig {}
FunctionService.java
package com.youhu.spring4_di.di;import org.springframework.stereotype.Service;/*** @Description: diservice* @Author:You.Hu* @Create:2017-03-11 16:46*/@Servicepublic class DiService {public String diFunctin(){return "this di service!";}}
UseDiService.java
package com.youhu.spring4_di.di;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;/*** @Description: UseDiService* @Author:You.Hu* @Create:2017-03-11 16:48*/@Servicepublic class UseDiService {@Autowiredprivate DiService diService;public String useDiFunction(){return diService.diFunctin();}}
Main.java
package com.youhu.spring4_di.di;import org.springframework.context.annotation.AnnotationConfigApplicationContext;/*** @Description: main* @Author:You.Hu* @Create:2017-03-11 16:52*/public class Main {public static void main (String [] args){//1.获取context上下文(作为Spring容器)AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(DiConfig.class);//2.创建实例(注意并不是通过new的方式)UseDiService useDiService= context.getBean(UseDiService.class);System.out.println(useDiService.useDiFunction());context.close();}}注解介绍:@Service当前类是一个由Spring管理的一个bean (在业务逻辑service层使用)@Autowired 是把DiService的实体注入到UseDiService中@Configuration 当前类是一个配置类@ComponentScan 自动扫描com.youhu.spring4_di.di下所有使用@service、@Repository、@Controller的类注册为bean(实例)使用AnnotationConfigApplicationContext来作为Spring容器 然后获得UseDiService的bean(实例)
五、运行结果
我们通过依赖注入的方式实现调用!简单实用附上源码地址 点击打开链接一起学习SpringBoot相关文章推荐
- spring boot 学习(三) — 依赖注入 @Bean
- [导入]学习spring依赖注入--备忘
- Spring学习——依赖注入
- 框架学习之Spring 第二节 采用Spring管理Bean和依赖注入
- Spring学习(一)——Spring中的依赖注入简介【转】
- Spring.Net 入门学习(一)实现控制器翻转与依赖注入
- 传智播客 Spring学习 xml配置依赖注入
- Spring 学习总结(一)依赖注入的理解
- SPRING.NET 1.3.2 学习5--依赖注入
- 框架学习之Spring 第二节 采用Spring管理Bean和依赖注入
- Spring架构学习(2)通过Properties文件实现依赖注入
- Spring视频学习(一)依赖注入原理
- Spring.net 学习笔记二 依赖注入
- Spring学习笔记(二)依赖注入Dependency Injection
- ITCAST视频-Spring学习笔记(编码剖析Spring依赖注入的原理)
- spring2.5 基于注解依赖注入学习--01
- Spring学习总结1(基础与IOC依赖注入)
- Spring2.5学习笔记1-控制反转-依赖注入类型
- Spring学习资料之 依赖注入(二)
- spring学习笔记3--依赖注入对象