spring--基于ioc的配置文件方式

简介: 概念Spring是一个开源的轻量级框架spring核心主要有两部分(1.)aop:面向切面编程,扩展功能不是修改源代码实现(2.)ioc:控制反转,比如有一个类,在类里面有方法(不是静态方法),调用类里面的方法,创建类的对象,使用对象调用方...

概念

  1. Spring是一个开源的轻量级框架
  2. spring核心主要有两部分
    (1.)aop:面向切面编程,扩展功能不是修改源代码实现
    (2.)ioc:控制反转,比如有一个类,在类里面有方法(不是静态方法),调用类里面的方法,创建类的对象,使用对象调用方法,创建类对象的过程,需要new出来对象
    ioc是把对象的创建不是通过new方式实现,而是交给spring配置创建类对象
  3. spring是一个一站式的轻量级框架
    (1.)spring在javaee三层结构中,每一层都提供不同的解决技术
    ----web层:springMVC
    ----service:spring的ioc
    ----dao层:spring的jdbcTemplate

ioc(控制反转)的操作

  • 把对象的创建直接交给spring进行管理
  • ioc的操作有两部分
    • 基于ioc的配置文件方式
    • 基于ioc的注解方式
  • ioc的底层原理

ioc底层原理使用技术
(1.)xml配置文件
(2.)dom4j解析xml
(3.)工厂设计模式
(4.)反射


img_a36b21c4c8125f1b7c1c67bef5db3d85.png
image.png

ioc操作步骤

  • 第一步 导入jar包
  • 创建类,在类里面创建方法
  • 创建spring配置文件,配置创建类
    • spring核心位置和文件名不是固定的,建议写在src目录下,文件名为ApplicationContext.xml
    • 引入schema约束
    • 创建 配置对象
  • 写测试
/*
分两步:
1.加载spring配置文件,根据配置文件创建对象
*/
ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");
//第二步:得到配置创建对象
/*
例如:User user = context.getBean("user");
*/

属性注入

创建对象的时候,向类里面属性里面设置值
属性注入方式:(Java方式)
1.有参数的构造函数
2.set方法
3.使用接口注入

//接口注入
public interface Dao{
  public void delete(String name);
}
public class DaoImpl implements Dao{
  private String name;
  public void delete(String name){
    this.name = name;
  }
}

在sping中支持前两种方式(set、有参构造)

<!-- 使用有参构造注入属性 -->
<bean id = "demo" class = "cn.persistXL.property.Demo">
  <!-- 使用有参构造注入 -->
  <constructor-arg name = "username" value = "小王小马"></constructor-arg>
</bean>
<!-- 使用set注入属性 -->
<bean id = "book" class = "cn.persistXL.property.book">
  <!-- 使用set注入  name属性值:类里面定义的属性名称 value:具体的值 -->
  <property name = "bookname" value = "java基础"></property>
</bean>

注入对象类型属性(重点)

  • 创建service类和dao类
    • 在service得到dao对象(new)
  • 具体实现过程
    • 在service里面把dao作为类型属性private UserDao userDao;
    • 生成dao类型set属性的方法public void setUserDao(UserDO UserDO){this.userDao = userDao}
    • 注入类型的对象属性
<!-- 注入对象类型属性 -->
<!-- 1.配置service和dao对象 -->
<bean id = "userDao" class ="cn.persistXL.ioc.UserDao" ></bean>
<bean id = "userService" class ="cn.persistXL.ioc.UserService" >
  <!-- 注入dao对象
            name属性:service类里面属性名称
                  现在不要写value属性,因为刚才是字符串,现在是对象,
            写ref属性: dao配置属性bean标签中的id值
   -->
   <property name = "userDao" ref = "userDao"></property>
</bean>

IOC和DI的区别

IOC:
控制反转,把对象创建交给spring进行配置
DI:
依赖注入,创建对象中向类里面的属性中设置值
关系:
依赖注入不能单独存在,需要对象创建的基础上存在(在ioc基础上完成操作)

spring整合web项目原理

加载spring核心配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");
new对象,功能可以实现,效率很低
实现思想:把加载配置文件和创建对象过程,在服务器启动时候完成
实现原理:
1.servletContext对象
2.监听器
3.具体使用
1).在服务器启动时候,为每个项目创建一个servletContext对象
2).在ServletContext对象创建的时候,使用监听器可以监听到具体的ServlectContext对象在什么时候创建
3).使用监听器监听到ServletContext对象创建时候
(1).加载spring文件,把配置文件的配置对象创建
(2).把创建出来的对象放到ServletContext域对象里面(setAttribute方法)
4).获取对象的时候,到ServletContext域对象得到(getAttribute方法)

相关文章
|
6月前
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `&lt;appender&gt;` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `&lt;logger&gt;` 和 `&lt;root&gt;` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
1614 1
|
7月前
|
XML Java 测试技术
Spring IOC—基于注解配置和管理Bean 万字详解(通俗易懂)
Spring 第三节 IOC——基于注解配置和管理Bean 万字详解!
514 26
|
4月前
|
XML Java 数据格式
Spring IoC容器的设计与实现
Spring 是一个功能强大且模块化的 Java 开发框架,其核心架构围绕 IoC 容器、AOP、数据访问与集成、Web 层支持等展开。其中,`BeanFactory` 和 `ApplicationContext` 是 Spring 容器的核心组件,分别定位为基础容器和高级容器,前者提供轻量级的 Bean 管理,后者扩展了事件发布、国际化等功能。
|
9月前
|
XML Java 数据格式
【SpringFramework】Spring IoC-基于XML的实现
本文主要讲解SpringFramework中IoC和DI相关概念,及基于XML的实现方式。
194 69
|
6月前
|
Java 容器 Spring
什么是Spring IOC 和DI ?
IOC : 控制翻转 , 它把传统上由程序代码直接操控的对象的调用权交给容 器,通过容器来实现对象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转 移,从程序代码本身转移到了外部容器。 DI : 依赖注入,在我们创建对象的过程中,把对象依赖的属性注入到我们的类中。
|
6月前
|
Java 数据库 微服务
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——指定项目配置文件
在实际项目中,开发环境和生产环境的配置往往不同。为简化配置切换,可通过创建 `application-dev.yml` 和 `application-pro.yml` 分别管理开发与生产环境配置,如设置不同端口(8001/8002)。在 `application.yml` 中使用 `spring.profiles.active` 指定加载的配置文件,实现环境快速切换。本节还介绍了通过配置类读取参数的方法,适用于微服务场景,提升代码可维护性。课程源码可从 [Gitee](https://gitee.com/eson15/springboot_study) 下载。
234 0
|
8月前
|
Java 测试技术 应用服务中间件
Spring Boot 配置文件总结
Spring Boot 提供全局配置文件 `application.properties` 和 `application.yml`,用于修改自动配置的默认值。前者使用键值对配置,后者使用缩进和冒号。不同环境(开发、测试、生产)可切换配置文件,通过 `spring.profiles.active` 指定。例如,开发环境端口为4790,测试环境为4791,生产环境为4792。配置示例展示了属性、List、Map定义及引用方法。
238 14
|
9月前
|
设计模式 XML Java
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
本文详细介绍了Spring框架的核心功能,并通过手写自定义Spring框架的方式,深入理解了Spring的IOC(控制反转)和DI(依赖注入)功能,并且学会实际运用设计模式到真实开发中。
【23种设计模式·全精解析 | 自定义Spring框架篇】Spring核心源码分析+自定义Spring的IOC功能,依赖注入功能
|
9月前
|
Java Spring 容器
【SpringFramework】Spring IoC-基于注解的实现
本文主要记录基于Spring注解实现IoC容器和DI相关知识。
144 21
|
9月前
|
XML Java 数据格式
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式
本文介绍了在使用Spring框架时,如何通过创建`applicationContext.xml`配置文件来管理对象。首先,在resources目录下新建XML配置文件,并通过IDEA自动生成部分配置。为完善配置,特别是添加AOP支持,可以通过IDEA的Live Templates功能自定义XML模板。具体步骤包括:连续按两次Shift搜索Live Templates,配置模板内容,输入特定前缀(如spring)并按Tab键即可快速生成完整的Spring配置文件。这样可以大大提高开发效率,减少重复工作。
使用idea中的Live Templates自定义自动生成Spring所需的XML配置文件格式