Spring

IOC 控制反转

将对象的创建权交给IOC去管理,进而达到代码解耦合的目的( 比如业务层调DAO层,就必须要new一个DAO的对象,此时代码就定死了,代码就变得耦合 ,而用Spring的IOC容器管理Bean对象可以在配置文件中更改类,进而达到解耦)。
在这里插入图片描述

Bean标签基本配置

在这里插入图片描述

在这里插入图片描述
值得注意的是,随着scope属性值的改变,IOC中的Bean对象的创建时机也会不同。 当值为singleton时,Bean对象随着Spring的核心配置文件ApplicationContext的加载而被实例化(且实例化个数只有一个) ; 当值为prototype时,Bean对象只有在调用getBean()方法时才会被实例化(实例化个数可为多个)。

在这里插入图片描述
在这里插入图片描述

Bean实例化的三种方式

Bean默认是Spring通过无参构造帮我们创建,但有时可以通过配置不让它找无参构造,那便是工厂静态方法实例化,工厂实例方法实例化。

这种便是无参构造实例化。
<bean id="UserService" class="com.YuZai.Service.impl.UserServiceImpl">
        <constructor-arg name="userDAO" ref="UserDao"></constructor-arg>
</bean>

主要还是使用无参构造方法实例化,工厂静态方法与工厂实例方法实例化还是较少。
在这里插入图片描述

.xml 配置文件系列

加载.Propertires文件

在这里插入图片描述

在这里插入图片描述

导入其他.xml配置文件

在这里插入图片描述

开启注解扫描

在这里插入图片描述

依赖注入

依赖注入(Dependency Injection) :它是Spring框架核心IOC的具体实现。
在编写程序时,通过控制反转,把对象的创建交给了Spring,但是代码中不可能出现没有依赖的情况。
IOC解耦只是降低他们的依赖关系,但不会消除。例如: 业务层仍会调用持久层的方法。
实例: 怎么将UserDao注入到UserService内部呢? ①set方法②构造方法③注解注入

Setter方法 注入

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

P命名空间注入本质也是Set注入
在这里插入图片描述

构造方法 注入

在这里插入图片描述
在这里插入图片描述

注解注入

@Autowired
自动注入,自动从Spring的上下文找到合适的Bean来注入。

在这里插入图片描述

@Resource
指定名称注入 (IOC容器中的Bean,也就是在核心配置中配置的Bean)
在这里插入图片描述
另外,@Resource是java自带的注解,不是Spring中的注解。@Resource注解完整的包路径为 javax.annotation.Resource。

@Qualifier
在这里插入图片描述

依赖注入的数据类型

在这里插入图片描述

注入引用数据类型

以上都是(依赖注入)。

注入基本数据类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注入集合数据类型

在这里插入图片描述
在这里插入图片描述

Spring相关API

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Spring配置数据源

加载外部.Properties文件,为DataSource注入值。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

AOP 切面编程

声明式事务

Spring 注解开发

注解开发优势

Spring是轻代码而重配置的框架,配置比较繁重,影响开发效率,所以注解开发是一种趋势,注解代替xml配置文件可以简化配置,提高开发效率。

原始注解

Spring原始注解主要是替代<Bean>的配置
在这里插入图片描述

@Autowired,@Qualifier,@Resource 对象注入

在这里插入图片描述
在这里插入图片描述

@Componet 普通类Bean注入

在这里插入图片描述

@Repository Dao层Bean注入

在这里插入图片描述

@Service Service层Bean注入

在这里插入图片描述

测试

在这里插入图片描述

@Value 属性注入 (搭配${}实现解耦)

在这里插入图片描述

@Scope 设置Bean对象的单例还是多例

在这里插入图片描述

在Spring的.xml配置文件中它是这样子滴。
在这里插入图片描述

在这里插入图片描述

@PostConstruct Bean初始化方法注解
@PreDestroy Bean销毁方法注解

在这里插入图片描述
在原本Spring的.xml文件中的配置是这样滴。
在这里插入图片描述

新注解

在这里插入图片描述

在这里插入图片描述

@Configuration 配置类

指定当前类为Spring配置类。(相当于替代了.xml配置文件)

@ComponentSan 注解扫描

相当于.xml文件中的:
在这里插入图片描述

@PropertySource 加载.Propertyties文件

相当于.xml文件中的:
在这里插入图片描述

@Import 导入其他配置类

相当于.xml文件中的:
在这里插入图片描述

@ImportResource

Spring提供了一个 @ImportResource 注释,用于将自定义的 applicationContext.xml文件中的bean加载到Application Context中。

@ImportResource 不管是用 value= 还是locations = 又或者是缺省。
 如果路径前面不加  file: 都是默认读取相对于 classpath  的路径
spring 很多配置都有这样的默认规则
@Bean 将方法的返回值加载到IOC中

相当于.xml文件中的: 在这里插入图片描述

使用注解后:
在这里插入图片描述

新注解开发实例

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Spring整合Junit

在这里插入图片描述
坐标

 <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
</dependency>

<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>5.3.19</version>
</dependency>
@runWith注解作⽤:
--@RunWith就是⼀个运⾏器
--@RunWith(JUnit4.class)就是指⽤JUnit4来运⾏
--@RunWith(SpringJUnit4ClassRunner.class),让测试运⾏于Spring测试环 境,以便在测试开始的时候⾃动创建Spring的应⽤上下⽂
--@RunWith(Suite.class)的话就是⼀套测试集合

Spring整合Junit测试时,使用@ContextConfiguration注解引入多个配置文件。

@ContextConfiguration(classes = SimpleConfiguration.class)

@ContextConfiguration(locations="../applicationContext.xml")

@Autowired 自动依赖注入对象

在这里插入图片描述

Spring 集成Web环境

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值