深入理解Spring框架:核心概念、依赖注入实现和快速上手流程

1. Spring概述

1.1 什么是Spring

Spring作为一款轻量级开源框架,以控制反转(IOC)和面向切面编程(AOP)为内核.解决了开发人员在工作过程中遇到的许多常见问题.包括目前市场的java项目绝大部分会采用Spring框架技术.

1.2 Spring框架优点

Spring框架可以通过使用依赖注入(DI)来解耦各个组件之间的依赖关系,达到项目的可测试和易于维护性。还可以通过面向切面编程(AOP)管理系统中的横切关注点,提高模块化 将关注点从程序中的逻辑分离出来,使代码清晰简洁易于维护.

2. Spring核心之一IOC的具体实现

控制反转(IOC)作为Spring框架的核心之一,它是一种软件的设计思想 而实现这种思想的技术就叫做 依赖注入(DI).同时Spring框架的核心技术也就是 依赖注入(DI).

对于Spring框架 控制反转(IOC) 就是把负责控制对象生命周期和对象间的关系来交给Spring管理.而依赖注入(DI) 则是动态的向某个对象提供它所需要的其他对象.

Spring依赖注入可以注入三种类型的数据:

\1. String类型和其它基本类型

\2. 复杂类型/集合类型

\3. 在配置文件中配置过的bean

\4. 在注解中配置过的bean

Spring注入的方式有:

\1. 使用构造函数注入

在bean标签的内部使用 constructor-arg标签

<bean id="demo" class="com.yw.Demo"><constructor-arg name="name" value="江湖"></constructor-arg><constructor-arg name="age" value="55555"></constructor-arg></bean>

在constructor-arg标签中 value用于指定其它bean类型的数据,就是ico容器中出现过的其它bean对象.除了有value属性为 ,还有 type index name 属性 这三个属性用于指定给构造函数中哪个参数赋值

\2. 使用set方法注入

在bean标签内部使用 property标签

<bean id="demo" class="com.yw.Demo"><property name="name" value="江湖"></property ><property  name="age" value="55555"></property ></bean>

Set方法不能清晰的表达哪些属性是必须的,因为在创建对象时,如果规定某个成员必须有值,则在获取对象时set方法可能没有执行。

\3. 使用注解注入

\1. 创建对象容器

使用@Component注解 放在类上,作用是把当前类放在Spring容器中,默认值为当前类名.

@ComponentPublic class DogServiceImpl implements DogService{ }

\2. 注入数据 @Autowired

@Autowired 放在属性上通过set方法注入

放在构造器上通过构造方法注入

作用和配置文件的中的bean标签的 property标签一样.

@ComponentPublic class DogServiceImpl implements DogService{@Autowired  //注入Private DogService dogService;}

3.Spring快速上手

1.创建一个Spring项目

\1. 在idea中创建maven项目

\2. 在pom.xml文件中添加spring信息

<dependencies>•    <dependency>•      <groupId>org.springframework</groupId>•      <artifactId>spring-context</artifactId>•      <version>5.2.3.RELEASE</version>•    </dependency>  </dependencies>

\3. 添加启动类

Public class App{Public static void main(String[] args){    }}

2. 向Spring容器中 存储Bean对象

\1. 创建一个Bean对象

publicclassDogprivateStringname;privateStringcolor;publicStringgetName()returnname;publicvoidsetName(Stringname)this.name=name;publicStringgetColor()returncolor;publicvoidsetColor(Integercolor)this.color=color;

\2. 将创建的Bean对象注册到Spring容器中

在项目中的resources文件夹中建立Spring的配置文件 spring-config.xml.

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"•    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"•    xsi:schemaLocation="http://www.springframework.org/schema/beans            http://www.springframework.org/schema/beans/spring-beans.xsd"></beans>

此文件为Spring的核心配置文件

\3. 在核心配置文件中 使用Bean标签把Dog对象注册到Spring容器中

<beans>  <bean id="dog" class="com.yw.Dog"></bean></beans>

Bean标签把对象交给Spring来创建,基本有id和class 其中id为Bean的实例在Sping容器中的唯一标识 而class则是Bean的全局名称(对象的路径)

3. 从Spring容器中获取使用Bean对象

1.创建Spring上下文

方式(1):在App启动文件中添加如下语句ApplicationContext context = new ClassPathXmlApplicationContext(“spring配置名”);

方式(2):使用Bean工厂 BeanFactory

创建Bean工厂BeanFactory factory = new XmlBeanFactory(new ClassPathResource(“spring配置文件名”));

\2. 获取指定的Bean对象ApplicationContext context=new ClassPathXmlApplicationContext(“Spring容器配置文件”);

//获取Bean对象context.getBean(“dog”);

//dog为上文定义的id标签

//使用对象接收Dog dog = (Dog) context.getBean(“dog”);

3. 使用Bean

在Dog类中添加一个run方法 来演示使用Bean调用此方法.

dog类:Public void run(){

System.out.println(“跑”);

}

使用Bean:Dog.run();

4. Spring使用流程

\1. 第一步首先使用idea编辑器来创建一个Spring项目并且引入Spring所需要的文件以及在Spring配置文件中,配置基础的信息.

\2. 存储Bean,首先创建一个Bean对象 将Bean对象存入Spring容器中(sprign-config.xml)

\3. 获取使用Bean对象:首先获取全局配置文件——>ApplicationContext || BeanFactory 其次根据id 使用getBean()来获取Bean对象

\4. 最后使用我们的Bean对象

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容