你不知道的Spring配置文件

简介:   Spring配置文件是用于指导Spring工厂进行Bean生产、依赖关系注入(装配)及Bean实例分发的"图纸"。Java EE程序员必须学会并灵活应用这份"图纸"准确地表达自己的"生产意图"。Spring配置文件是一个或多个标准的XML文档,applicationContext.xml是Spring的默认配置文件,当容器启动时找不到指定的配置文档时,将会尝试加载这个默认的配置文件。

  Spring配置文件是用于指导Spring工厂进行Bean生产、依赖关系注入(装配)及Bean实例分发的"图纸"。Java EE程序员必须学会并灵活应用这份"图纸"准确地表达自己的"生产意图"。Spring配置文件是一个或多个标准的XML文档,applicationContext.xml是Spring的默认配置文件,当容器启动时找不到指定的配置文档时,将会尝试加载这个默认的配置文件。

       下面列举的是一份比较完整的配置文件模板,文档中各XML标签节点的基本用途也给出了详细的解释,这些XML标签节点在后续的知识点中均会用到,熟练掌握了这些XML节点及属性的用途后,为我们动手编写配置文件打下坚实的基础。

  1 <?xml version="1.0" encoding="UTF-8"?>
  2 <beans //整个配置的根节点,包含一个或者多个bean元素
  3 
  4        //最基本的命名空间定义
  5        xmlns="http://www.springframework.org/schema/beans"    
  6 
  7        //最基本的命名空间定义
  8        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
  9 
 10        //启动自动扫描或注解装配的命名空间
 11        xmlns:context="http://www.springframework.org/schema/context"    
 12 
 13        //启用AOP功能的命名空间
 14        xmlns:aop="http://www.springframework.org/schema/aop"    
 15 
 16        //启用声明事务的命名空间
 17        xmlns:tx="http://www.springframework.org/schema/tx"  
18 //与上述命名空间定义相配套的schema定义文件的装载路径 19 xsi:schemaLocation="http://www.springframework.org/schema/beans 20 http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 21 http://www.springframework.org/schema/context 22 http://www.springframework.org/schema/context/spring-context-2.5.xsd 23 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd 24 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> 25 26 <!-- 配置开启注解处理器 --> 27 <context:annotation-config/> 28 29 <!--开启组件自动扫描,扫描路径由base-package属性指定,代表扫描指定包名以及其子包 --> 30 <context:component-scan base-package="test"></context:component-scan> 31 32 <!--开启基于@AspectJ切面的注解处理器--> 33 <aop:aspectj-autoproxy/> 34 35 <!-- 引入配置文件,文件位置由location属性指定 --> 36 <context:property-placeholder location="xxx"/> 37 38 <!--使用class属性指定类的默认构造方法创建一个单实例Bean,名称由id属性指定 39 1.scope属性为 40 prototype时表示每次将生成新的实例,即原型模式 41 singleton时表示在每个Spring IOC容器中该bean定义只有一个对象实例 42 2.init-method:初始化时调用的方法名 43 3.destroy-method:对象销毁时调用的方法名 44 --> 45 <bean id="Bean实例名称" class="Bean类全名称" scope="prototype" init-method="init" destroy-method="close"> 46 47 <property name="Bean类中的属性名称" value="直接指定属性值"/> 48 49 <property name="Bean类中的属性名称" ref="要引用的Bean名称"/> 50 51 <property name="Bean类中的属性名称"> 52 <!--创建一个内部匿名Bean实例赋值给指定的属性,该匿名Bean实例无法被外界访问--> 53 <bean class="Bean类全名"/> 54 </property> 55 56 <property name="Bean类中的Set类型属性名称"> 57 <!-- 58 set标签用于创建一个Set类型的实例赋值给指定的Set类型属性,Set实例中的元素 59 通过value或ref子标签指定。对于基本数据类型的元素可由value标签生成,如果需 60 要引用其他Bean实例作为Set元素的话,可由ref标签指定。 61 --> 62 <set> 63 <value>要设置到set中的元素</value> 64 <ref bean="要引用的Bean名称"/> 65 </set> 66 </property> 67 68 <property name="Bean类中的List类型属性名称"> 69 <!-- 70 list标签用于创建一个List类型的实例赋值给指定的List类型属性,List实例中的元素 71 通过value或ref子标签指定。对于基本数据类型的元素可由value标签生成,如果需要引 72 用其他Bean实例作为List元素的话,可以由ref标签指定。 73 --> 74 <list> 75 <value>要设置到list中的元素</value> 76 <ref bean="要引用的Ben名称"/> 77 </list> 78 </property> 79 80 <property name="Bean类中的Map类型属性名称"> 81 <!-- 82 map标签用于创建一个Map类型的实例赋值给指定的Map类型属性,Map实例中的元素通过 83 entry标签指定。Map元素的键由entry标签的key属性直接指定,值则可由value或ref子 84 标签的key属性直接指定。对于基本数据类型的元素可由value标签生成,如果需要引用 85 其他Bean实例作为List元素的话,可以由ref标签指定。 86 --> 87 <map> 88 <entry key="map元素的key"> 89 <value>map元素的value</value> 90 </entry> 91 <entry key="map元素的key"> 92 <ref bean="要引用的Ben名称"/> 93 </entry> 94 </map> 95 </property> 96 97 <property name="Bean类中的Properties类型属性名称"> 98 <!-- 99 创建一个Properties类型的实例赋值给指定的Properties类型属性 100 --> 101 <props> 102 <!--Properties实例中的元素由prop标签生成,属性项元素的键由key属性指定,属性元素 103 的值可直接放置在prop标签中--> 104 <prop key="properties元素的key">properties元素的value</prop> 105 </props> 106 </property> 107 108 <property name="Bean类中要初始化为null的属性名称"> 109 <null/><!--null标签用于给需要赋值为null值得属性进行赋null值--> 110 </property> 111 112 <!-- 113 通过传入相应的构造参数进行Bean实例化,constructor-arg标签用于指定一个构造参数,其index 114 属性标明当前是第几个构造参数(从0开始),type属性声明构造参数的类型,构造参数的值如果是基 115 本类型可由value属性值直接指定,如果是对象的引用,则由ref属性指定。 116 --> 117 <constructor-arg index="从0开始的序号" type="构造参数的类型" value="构造参数的值"/> 118 <constructor-arg index="从0开始的序号" type="构造参数的类型" ref="要引用的Bean名称"/> 119 </bean> 120 121 <!--配置切面--> 122 <bean id="目标对象名称" class="目标对象全名"/> 123 <bean id="切面实例名称" class="切面类全名"/> 124 <aop:config> 125 <aop:aspect id="切面id" ref="要引用的切面实例名称"> 126 <aop:pointcut id="切入点名称" expression="切入点正则表达式"/> 127 <aop:before pointcut-ref="切入点名称" method="切面类中用作前置通知的方法名"/> 128 <aop:after-returing pointcut-ref="切入点名称" method="切面类中用作后置通知的方法名"/> 129 <aop:after-throwing pointcut-ref="切入点名称" method="切面类中用作异常通知的方法名"/> 130 <aop:after pointcut-ref="切入点名称" method="切面类中用作最终通知的方法名"/> 131 <aop:around pointcut-ref="切入点名称" method="切面类中用作环绕通知的方法名"/> 132 </aop:aspect> 133 </aop:config> 134 135 <!-- 配置事务管理器 --> 136 <bean id="事务管理器实例名称" class="事务管理器类全名"> 137 <property name="数据源属性名称" ref="要引用的数据源实例名称"> 138 </bean> 139 140 <!-- 配置一个事务通知 --> 141 <tx:advice id="" transaction-manager=""> 142 <tx:attributes> 143 <!-- 方法以get开头的,不使用事务 --> 144 <tx:method name="get*" read-only="true" propagation="NOT_SUPPORTED"/> 145 <!-- 其他方法以默认事务进行 --> 146 <tx:method name="*" /> 147 </tx:attributes> 148 </tx:advice> 149 150 <!-- 使用AOP技术实现事务管理 --> 151 <aop:config> 152 <aop:pointcut id="事务切入点名称" expression="事务切入点正则表达式"/> 153 <aop:advisor advice-ref="事务通知名称" pointcut-ref="事务切入点名称"/> 154 </aop:config> 155 156 <!--使用基于注解方式配置事务, --> 157 <tx:annotation-driven transaction-manager="事务管理器Bean的id"/> 158 159 </beans>
相关文章
|
Java Spring
Spring boot 运行服务jar外配置配置文件方式总结
Spring boot 运行服务jar外配置配置文件方式总结
1491 0
|
7月前
|
存储 Java 文件存储
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— logback.xml 配置文件解析
本文解析了 `logback.xml` 配置文件的详细内容,包括日志输出格式、存储路径、控制台输出及日志级别等关键配置。通过定义 `LOG_PATTERN` 和 `FILE_PATH`,设置日志格式与存储路径;利用 `&lt;appender&gt;` 节点配置控制台和文件输出,支持日志滚动策略(如文件大小限制和保存时长);最后通过 `&lt;logger&gt;` 和 `&lt;root&gt;` 定义日志级别与输出方式。此配置适用于精细化管理日志输出,满足不同场景需求。
1730 1
|
XML Java 数据格式
Spring从入门到入土(xml配置文件的基础使用方式)
本文详细介绍了Spring框架中XML配置文件的使用方法,包括读取配置文件、创建带参数的构造对象、使用工厂方法和静态方法创建对象、对象生命周期管理以及单例和多例模式的测试。
578 7
Spring从入门到入土(xml配置文件的基础使用方式)
|
11月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
279 2
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
7月前
|
Java 数据库 微服务
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——指定项目配置文件
在实际项目中,开发环境和生产环境的配置往往不同。为简化配置切换,可通过创建 `application-dev.yml` 和 `application-pro.yml` 分别管理开发与生产环境配置,如设置不同端口(8001/8002)。在 `application.yml` 中使用 `spring.profiles.active` 指定加载的配置文件,实现环境快速切换。本节还介绍了通过配置类读取参数的方法,适用于微服务场景,提升代码可维护性。课程源码可从 [Gitee](https://gitee.com/eson15/springboot_study) 下载。
269 0
|
9月前
|
Java 测试技术 应用服务中间件
Spring Boot 配置文件总结
Spring Boot 提供全局配置文件 `application.properties` 和 `application.yml`,用于修改自动配置的默认值。前者使用键值对配置,后者使用缩进和冒号。不同环境(开发、测试、生产)可切换配置文件,通过 `spring.profiles.active` 指定。例如,开发环境端口为4790,测试环境为4791,生产环境为4792。配置示例展示了属性、List、Map定义及引用方法。
249 14
|
10月前
|
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配置文件格式
|
12月前
|
Java API Spring
在 Spring 配置文件中配置 Filter 的步骤
【10月更文挑战第21天】在 Spring 配置文件中配置 Filter 是实现请求过滤的重要手段。通过合理的配置,可以灵活地对请求进行处理,满足各种应用需求。还可以根据具体的项目要求和实际情况,进一步深入研究和优化 Filter 的配置,以提高应用的性能和安全性。
|
10月前
|
Java Spring
【Spring配置】创建yml文件和properties或yml文件没有绿叶
本文主要针对,一个项目中怎么创建yml和properties两种不同文件,进行配置,和启动类没有绿叶标识进行解决。