【深入JAVA EE】Spring配置文件解析
在阅读的过程中有不论什么问题,欢迎一起交流
QQ:1494713801
一、Spring头信息
Spring配置文件的头部信息通常是固定不变的。但每个标签都有自己的含义。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"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:cache="http://www.springframework.org/schema/cache"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/taskhttp://www.springframework.org/schema/task/spring-task-3.1.xsd
http://www.springframework.org/schema/cachehttp://www.springframework.org/schema/cache/spring-cache-3.1.xsd">
<!— xml配置内容 -->
</beans>
、XML Schema命名空间作用:
)、避免命名冲突,像Java中的package一样
)、将不同作用的标签分门别类(像context命名空间针对组件的标签)
、代码解释:
)、xmlns="http://www.springframework.org/schema/beans"
声明xml文件默认的命名空间,表示未使用其它命名空间的全部标签的默认命名空间。
)、xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
声明XML Schema
实例,声明后就能够使用 schemaLocation属性了
)、xmlns:context="http://www.springframework.org/schema/context"
4)、xmlns:cache="http://www.springframework.org/schema/cache"
5)、xmlns:p="http://www.springframework.org/schema/p"
给XML配置文件"减肥"的还有一个选择就是使用p名称空间。当我们採用了p名称空间。我们就能够在bean元素中使用属性(attribute)来描写叙述bean的property值。
6)、 xmlns:task="http://www.springframework.org/schema/task"
)、xmlns:aop="http://www.springframework.org/schema/mvc"
声明前缀为mvc的命名空间,后面的URL用于标示命名空间的地址不会被解析器用于查找信息。其惟一的作用是赋予命名空间一个惟一的名称。
当命名空间被定义在元素的開始标签中时,全部带有同样前缀的子元素都会与同一个命名空间相关联。
)、xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
这个从命名能够看出个大概。指定Schema的位置这个属性必须结合命名空间使用。这个属性有两个值,第一个值表示须要使用的命名空间。第二个值表示供命名空间使用的 XML schema的位置
所以我们须要什么样的标签的时候,就引入什么样的命名空间和Schema定义就能够了。
二、Spring配置文件结构
beans标签中能够包括4个标签:
<alias>为一个定义过的bean起一个别名
<bean>向Spring容器中定义bean元素
<description>用来描写叙述Spring context或每一个bean元素。尽管他会被Spring容器所忽略,但<description>元素能够通过工具生成属于你的Spring
context文档
<import>导入其它Spring context的定义
1、bean命名空间:
1)、标签bean中能够包括例如以下元素:
<constructor-arg>向bean的构造函数注入值或引用,即构造函数注入
<description>同beans中作用同样。用来描写叙述Spring context或每一个bean元素,尽管他会被Spring容器所忽略,但<description>元素能够通过工具生成属于你的Spring
context文档
<lookup-method>用法来取代getter注入,指定一个方法。他会在执行被复写从而返回一个指定的bean,即getter注入
<meta>同意为你的bean进行meta配置,仅在一些特殊场合下实用
<property>为bean的特定属性注入一个值或者引用。这就是我们常说的setter注入
<replaced-method>用一个新的实现来取代bean的某个方法
2)、标签bean中能够包括例如以下属性:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDUxNTc2MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="550" height="480">
2、Context命名空间
1)、Context标签:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDUxNTc2MQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="531" height="270">
<context:component-scan/>具体解释
.假设不想在xml文件里配置bean。能够给我们的类加上spring组件注解,仅仅需再配置下spring的扫描器<context:component-scan/>就能够实现bean的自己主动载入。
然后在程序中增加注解便可自己主动载入bean,@Component是全部受Spring管理组件的通用形式;而@Repository、@Service和@Controller则是@Component的细化,用来表示更详细的用例(比如,分别相应了持久化层、服务层和表现层)。
也就是说,你能用@Component来注解你的组件类,但假设用@Repository、@Service或@Controller来注解它们,你的类或许能更好地被工具处理,或与切面进行关联。
<context:component-scan>提供两个子标签:<context:include-filter>和<context:exclude-filter>各代表引入和排除的过滤。
有了<context:component-scan>,还有一个<context:annotation-config/>标签根本能够移除掉。由于已经被包括进去了。
3、AOP命名空间
1)、AOP标签
4、JEE命名空间
1)、JEE标签
【深入JAVA EE】Spring配置文件解析的更多相关文章
- Spring配置文件解析--依赖注入
1.构造器注入基于构造器的DI通过调用带参数的构造器来实现,每个参数代表着一个依赖.此外,还可通过给stattic工厂方法传参数来构造bean.构造器参数解析根据参数类型进行匹配,如果bean的构造器 ...
- 系统启动时,spring配置文件解析失败,报”cvc-elt.1: 找不到元素 'beans' 的声明“异常
现象:spring加载配置文件applicationContext.xml出错,抛出nested exception is og.xml.sax.SAXParseException; lineNumb ...
- SSH问题:系统启动时,spring配置文件解析失败,报”cvc-elt.1: 找不到元素 'beans' 的声明“异常
现象:spring加载配置文件applicationContext.xml出错,抛出nested exception is og.xml.sax.SAXParseException; lineNumb ...
- Spring配置文件解析--bean属性
1.bean设置别名,多个别名用逗号隔开 <!--使用alias--> <bean id="app:dataSource" class="...&quo ...
- Spring配置文件解析--集合注入方法
<bean id="moreComplexObject" class="example.ComplexObject"> <property n ...
- Spring Boot 2.0 学习笔记(一)——JAVA EE简介
本章内容:JAVA EE>Spring>Spring Boot 一.JAVA EE简介 1.1 Java ee优点:结束了Web开发的技术无序状态,让程序员.架构师用同一种思维去思考如何架 ...
- Java EE 学习(7):IDEA + maven + spring 搭建 web(3)- 配置数据库
参考: https://my.oschina.net/gaussik/blog/513444 注:在阅读本文前,请先阅读: Java EE 学习(5):IDEA + maven + spring 搭建 ...
- Java EE 学习(6):IDEA + maven + spring 搭建 web(2)- 配置 Spring
参考:https://my.oschina.net/gaussik/blog/513353 注:此文承接上一文:Java EE 学习(5):IDEA + maven + spring 搭建 web(1 ...
- 【Java EE 学习 81】【CXF框架】【CXF整合Spring】
一.CXF简介 CXF是Apache公司下的项目,CXF=Celtix+Xfire:它支持soap1.1.soap1.2,而且能够和spring进行快速无缝整合. 另外jax-ws是Sun公司发布的一 ...
随机推荐
- Python实现knn
#coding:utf-8 import numpy as np import operator import os def classify0(inX, dataSet, labels, k): d ...
- vue中通过路由跳转的三种方式
原文:https://blog.csdn.net/qq_40072782/article/details/82533477 router-view 实现路由内容的地方,引入组件时写到需要引入的地方需要 ...
- hdu 1503 最长公共子序列
/* 给两个串a,b.输出一个最短的串(含等于a的子序列且含等于b的子序列) */ #include <iostream> #include <cstdio> #include ...
- 外星千足虫(bzoj 1923)
Description Input 第一行是两个正整数 N, M. 接下来 M行,按顺序给出 Charles 这M次使用“点足机”的统计结果.每行 包含一个“01”串和一个数字,用一个空格隔开.“01 ...
- 洛谷P2168 荷马史诗 [NOI2015]
题目描述 追逐影子的人,自己就是影子 ——荷马 Allison 最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的<荷马史诗>.但是由<奥德赛&g ...
- CSDN数据库下载地址 CSDN 用户名密码泄漏,600万数据下载
原文发布时间为:2011-12-21 -- 来源于本人的百度文章 [由搬家工具导入] 12月21日消息,下午有网友爆料称国内最大的开发者社区CSDN.NET的安全系统遭到黑客攻击,CSDN数据库中的6 ...
- 【git】把本地项目和远程git仓库相连通
1. 打开在你的项目文件夹,输入下面的命令 git init 输完上面的命令,文件夹中会出现一个.git文件夹,如下图所示,其他的的文件也会出现蓝色小问号的标志 2. 添加所有文件 git add . ...
- 《手把手教你学C语言》学习笔记(8)--- 运算符和表达式
C语言编程的核心是指针和库,而库的核心就是函数,函数的基本组成部分就是语句. C语言合法表达式加上分号(语句结束符)构成C函数的基本部分语句.如果只有分号没有表达式就构成空语句,空语句常常用来形成占位 ...
- 网络编程socket-SocketServer-FTP
16章 网络编程?应该是讲网络之间如何编程来进行通信的章节 16.1.1 客户端/服务器架构?客户端请求访问,服务器端监听请求,处理请求,进行相应的模式16.1.2 客户端/服务器编程?服务器端:创建 ...
- Theam,style
Theam <!-- Base application theme. --> <!--<style name="AppTheme" parent=" ...