Spring 5配置对象三种方式

简介: 记录spring中三种配置对象的方式!

一.配置对象的基本概念

1.配置对象的三种方式

① XML配置方式(经典场景)
② 注解配置方式(JDK1.5+)
③ Java Config 配置方式(Spring4+)

2.配置对象的作用

利用Spring将引用解耦(对象以对象之间的引用是通过Spring IOC容器在运行时通过反射技术动态实现注入,从而实现解耦),降低耦合(低耦合,高内聚)性,减少资源开销,被引用对象做修改时引用对象无须修改就可以实现业务的升级,开发人员只需关注自己的业务即可。

在这里插入图片描述

3.三种配置的比较

在这里插入图片描述

二.XML配置方式实现

项目构建:使用IDEA创建一个Maven项目,项目名为spring-xml,项目创建完成后如下图所示

在这里插入图片描述

依赖导入:在pom.xml中导入Spring的依赖支持
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.20</version>
        </dependency>
    </dependencies>
Spring配置文件:在resources文件下创建名为applicationContext.xml配置文件

在这里插入图片描述
在这里插入图片描述
applicationContext.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>
dao层:包含IEmpDao接口和EmpDao实现类

在这里插入图片描述
IEmpDao接口:

在这里插入图片描述
EmpDao实现类:
在这里插入图片描述

Application:创建一个Application类,作为程序的入口:
  • 以前创建对象(通过new方式创建对象):

在这里插入图片描述

运行效果:
在这里插入图片描述

  • 通过配置文件创建对象:

在applicationContext.xml配置文件中添加一个Bean对象:
在这里插入图片描述
在Application类中,就可以通过配置文件创建对象了( getBean()方法的行参就是配置文件中bean标签的name值 ):
在这里插入图片描述

运行效果:
在这里插入图片描述

service:包含一个员工业务类EmpService,通过业务类来实现员工添加。

EmpService.java( 一定不能少了setIEmpDao()方法,不然无法注入参数 )
在这里插入图片描述

在applicationContext.xml配置文件中,声明一个EmpService的bean对象通过 <property> 标签来初始化iEmpDao对象!( 配置文件方式创建EmpService对象 )
在这里插入图片描述
在Application中通过配置文件创建EmpService对象,进而实现添加员工业务。
在这里插入图片描述
运行效果:
在这里插入图片描述

注意在Application类中并没有使用setIEmpDao()方法来初始化IEmpDao对象,因为在配置文件中我们已经配置了EmpService的IEmpDao参数,所以在ApplicationContext对象创建后就已经初始化该对象。

在这里插入图片描述
运行效果:
在这里插入图片描述

使用配置文件创建对象的优点:在dao层新增一个IEmpDao的实现类EmpDaoExt作为EmpDao的替换类

在这里插入图片描述

将EmpDao更换为EmpDaoExt只需要在applicationContext.xml配置文件中将bean对象的class换成EmpDaoExt即可

在这里插入图片描述
在Application中实现如下代码:
在这里插入图片描述

运行效果( 通过上面的操作我们发现使用配置文件的方式创建对象,在更换dao中类的时候,无须修改servier层中的代码,只需要在配置文件中进行简单修改即可,这样的好处就是开发人只关心具体业务即可,无须关心下层提供的接口是如何实现的 ):
在这里插入图片描述

三.注解方式实现

1.Spring IOC注解

在这里插入图片描述

2.使用IOC注解的“套路”

  1. pom.xml 引入 spring-context 【已经完成】
  2. applicationContext.xml配置文件中设置 <component-scan>
  3. 使用@XXX注解让Spring IOC创建对象
  4. 利用@Resource 注入对象

根据上面的注解套路实现注解方式创建对象:

  • 步骤二(步骤1在前面已经完成):

( 这一步的作用就是扫描对应包中的注解 )
在这里插入图片描述

  • 步骤三:

    如果标签没有加参数,默认name为类小驼峰命名的变量名,如下的bean的name=empDaoExt

持久层添加 @Repository 注解(类似于前面的 <bean name="empDao" class="com.dudu.dao.EmpDaoExt"/> )
在这里插入图片描述
( @Repository 没有设置参数,默认bean对象的name为empDaoExt )

在这里插入图片描述
业务层添加注解@Service(类似于前面的 <bean name="empService" class="com.dudu.dao.EmpService"/> )

在这里插入图片描述

  • 步骤四:
@Resource标签的name在这里一定要指向对应dao中的EmpDao或EmpDaoExt中的一个bean的name名,不然会报错(dao中只有一个的情况下,可以不填name,因为会按类型进行注入)。

对象的注入使用 @Resource 标签,作用相当于前面配置文件中的 <property> ,并且该方式不需要使用setIEmpDao()方法:

在这里插入图片描述

Application中执行main方法:
在这里插入图片描述
运行效果:
在这里插入图片描述

四.Java Config方式实现

1.Java Config配置套路

  1. pom.xml 引入spring-context
  2. 创建Config类,无需创建XML
  3. @Configuration类说明
  4. @Bean声明对象
  5. AnnotationConfigApplicationContext加载配置类

创建一个Maven项目,项目名为spring-javaconfig,创建成功如下图所示:
在这里插入图片描述
根据上面的套路,完成对象的创建:

  • 步骤1:pom.xml 引入spring-context

在这里插入图片描述

  • 步骤2,3,4
dao层:IEmpDAO接口,二个接口实现类EmpDAO,EmpDAOExt

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

Service层:EmpService业务层

在这里插入图片描述
创建SpringConfig类:

  • @Configuration 替代XML,成为IOC容器主要配置来源
  • @Bean 用于初始化对象,bena的name默认为方法名称,在方法的内部手动进行实例化的操作,并将对象return返回

在这里插入图片描述

  • 步骤5: AnnotationConfigApplicationContext加载配置类

在这里插入图片描述
运行效果:
在这里插入图片描述

相关文章
|
1月前
|
Java 开发者 微服务
手写模拟Spring Boot自动配置功能
【11月更文挑战第19天】随着微服务架构的兴起,Spring Boot作为一种快速开发框架,因其简化了Spring应用的初始搭建和开发过程,受到了广大开发者的青睐。自动配置作为Spring Boot的核心特性之一,大大减少了手动配置的工作量,提高了开发效率。
50 0
|
2月前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
58 4
|
2月前
|
Java API 数据库
Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐
本文通过在线图书管理系统案例,详细介绍如何使用Spring Boot构建RESTful API。从项目基础环境搭建、实体类与数据访问层定义,到业务逻辑实现和控制器编写,逐步展示了Spring Boot的简洁配置和强大功能。最后,通过Postman测试API,并介绍了如何添加安全性和异常处理,确保API的稳定性和安全性。
44 0
|
4天前
|
NoSQL Java Redis
Spring Boot 自动配置机制:从原理到自定义
Spring Boot 的自动配置机制通过 `spring.factories` 文件和 `@EnableAutoConfiguration` 注解,根据类路径中的依赖和条件注解自动配置所需的 Bean,大大简化了开发过程。本文深入探讨了自动配置的原理、条件化配置、自定义自动配置以及实际应用案例,帮助开发者更好地理解和利用这一强大特性。
42 14
|
2天前
|
XML Java 数据格式
Spring容器Bean之XML配置方式
通过对以上内容的掌握,开发人员可以灵活地使用Spring的XML配置方式来管理应用程序的Bean,提高代码的模块化和可维护性。
17 6
|
3天前
|
XML Java 数据格式
🌱 深入Spring的心脏:Bean配置的艺术与实践 🌟
本文深入探讨了Spring框架中Bean配置的奥秘,从基本概念到XML配置文件的使用,再到静态工厂方式实例化Bean的详细步骤,通过实际代码示例帮助读者更好地理解和应用Spring的Bean配置。希望对你的Spring开发之旅有所助益。
29 3
|
2月前
|
Java API Spring
在 Spring 配置文件中配置 Filter 的步骤
【10月更文挑战第21天】在 Spring 配置文件中配置 Filter 是实现请求过滤的重要手段。通过合理的配置,可以灵活地对请求进行处理,满足各种应用需求。还可以根据具体的项目要求和实际情况,进一步深入研究和优化 Filter 的配置,以提高应用的性能和安全性。
|
9天前
|
XML 安全 Java
Spring Boot中使用MapStruct进行对象映射
本文介绍如何在Spring Boot项目中使用MapStruct进行对象映射,探讨其性能高效、类型安全及易于集成等优势,并详细说明添加MapStruct依赖的步骤。
|
1月前
|
Java Spring
[Spring]aop的配置与使用
本文介绍了AOP(面向切面编程)的基本概念和核心思想。AOP是Spring框架的核心功能之一,通过动态代理在不修改原代码的情况下注入新功能。文章详细解释了连接点、切入点、通知、切面等关键概念,并列举了前置通知、后置通知、最终通知、异常通知和环绕通知五种通知类型。
37 1
|
2月前
|
Java BI 调度
Java Spring的定时任务的配置和使用
遵循上述步骤,你就可以在Spring应用中轻松地配置和使用定时任务,满足各种定时处理需求。
158 1
下一篇
DataWorks