一.简介
Spring 是 2003 年兴起,通过使用IOC 和 AOP 组成的轻量级的为解决企业级开发的Java开发框架
官网:Spring | Home
特点:
1.轻量级:资源jar包少,运行时框架占用资源少,效率更高
2.IOC(Inversion of Control),由Spring容器来对对象实行管理
3.AOP(面相切面的编程)是一种思想,对面向对象编程(OOP)的一种补充,将程序插入各切面
4.一站式框架 本身提供数据访问功能和web功能,可以管理其他框架
体系结构
二.搭建
1.Maven导入核心jar包
Spring.jar包
<!-- spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
对Spring文件进行配置
spring配置文件
<?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">
<bean id="user" class="com.ff.spring.bean.User"> </bean>
</beans>
IOC(控制反转)
将手动创建对象交给Spring框架来进行并管理,IOC容器是具有依赖注入功能的容器,负责对象的实例化和初始化,对象间的依赖关系,销毁,对外提供查找等操作,生命周期由框架控制,使用时只需要获取要使用的对象,不关心创建过程
配置方式有两种:
1.基于XML进行配置
bean 配置需要 spring 管理的类
id 生成的对象名
class 全类名
name 对象别名,可以为多个
scope:
singleton(默认值):在 Spring 中只存在一个 bean 实例, 单例模式.
prototype:原型 getBean()的时候都会 new Bean()
request:每次 http 请求都会创建一个 bean, 仅用于 WebApplicationContext 环境
session:同一个 http session 共享一个 Bean, 不同 Session 使用不同的 Bean, 使用环境同
2.注解标签实现
导入Spring aop jar包
<context:component-scan base-package="包名"> </context:component-scan>
注解创建对象
@Component(value=“user”)
@Service
@Repository
为后续拓展会使用不同的注解标记
@Scope(value=“prototype”) 原型
@Scope(value=“ singleton ”)单型
注解注入属性
@Autowired :是 Spring 提供的注解,可以写在字段和 setter 方法上。如果写在 字段上,那么就不需要再写 setter 方法。默认情况下它要求依赖对象必须存在, 如果允许 null 值,可以设置它的 required 属性为 false。
byType 自动注入: 该注解默认使用按类型自动装配 Bean 的方式。
byName 自动注入: 如果我们想使用按照名称(byName)来装配,可以结合@Qualifier 注解一起 使用。
需要在引用属性上联合使用注解@Autowired 与@Qualifier。@Qualifier 的 value 属性用于指定要匹配的 Bean 的 id 值。
JDK 注解@Resource 自动注入: Spring 提供了对 jdk 中@Resource 注解的支持。@Resource 注解既可以按名 称匹配 Bean,也可以按类型匹配 Bean。默认按照 ByName 自动注入
byName 注入引用类型属性: @Resource 注解指定其 name 属性,则 name 的值即为按照名称进行匹配 的 Bean 的 id。