spring 中加载xml配置文件的方式 好像有 种 xml是最常见的spring 应用系统配置源 Spring中的几种容器都支持使用xml装配bean 包括
XmlBeanFactory
ClassPathXmlApplicationContext
FileSystemXmlApplicationContext
XmlWebApplicationContext
一 XmlBeanFactory 引用资源
Resource resource = new ClassPathResource( appcontext xml )
BeanFactory factory = new XmlBeanFactory(resource)
二 ClassPathXmlApplicationContext 编译路径
ApplicationContext factory=new ClassPathXmlApplicationContext( classpath:appcontext xml )
ApplicationContext factory=new ClassPathXmlApplicationContext( appcontext xml ) // src目录下的
ApplicationContext factory=new ClassPathXmlApplicationContext( conf/appcontext xml ) // src/conf 目录下的
ApplicationContext factory=new ClassPathXmlApplicationContext( file:G:/Test/src/appcontext xml )
三 : 用文件系统的路径
ApplicationContext factory=new FileSystemXmlApplicationContext( src/appcontext xml )
//使用了 classpath: 前缀 作为标志 这样 FileSystemXmlApplicationContext 也能够读入classpath下的相对路径
ApplicationContext factory=new FileSystemXmlApplicationContext( classpath:appcontext xml )
ApplicationContext factory=new FileSystemXmlApplicationContext( file:G:/Test/src/appcontext xml )
ApplicationContext factory=new FileSystemXmlApplicationContext( G:/Test/src/appcontext xml )
四 XmlWebApplicationContext 是专为Web工程定制的
ServletContext servletContext = request getSession() getServletContext()
lishixinzhi/Article/program/Java/ky/201311/282111基于XML的定时器
11 Spring的XML文件片段内容
方法1:
<!-- 定时器开关-->
<task:scheduled-tasks>
<!-- 定时任务(可以有多个定时任务),和执行时间,每5秒执行一次 -->
<task:scheduled ref="myTask" method="printSomeThing" cron="/5 "></>
</ task:scheduled-tasks >
<!-- 定时任务Bean所在位置 -->
<context:component-scan base-package="comyuxiSofterwaretask"/>
方法2:
<bean id="demoTask" class="comyuxiSofterwaretaskDemoTask"/>
<bean id="BuildTask" class="orgspringframeworkschedulingquartzMethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="demoTask"/>
<property name="targetMethod" value="printSomeThing" />
<property name="concurrent" value="false" />
</bean>
<bean id="BuildTrigger" class="orgspringframeworkschedulingquartzCronTriggerBean">
<property name="jobDetail" ref="BuildTask"/>
<property name="cronExpression" value="0/5 0 " />
</bean>
12 Bean类片段内容
package comyuxiSofterwaretask;
/
基于XML的Spring定时器
@author yuxiSofterware
/
public class DemoTask {
public void printSomeThing() {
Systemoutprintln("XML定时器触发。");
}
}
13 编写main方法,解析Spring的XML文件,定时器就会按时触发,编写过程略。
2 基于注解的Spring定时器
package comyuxiSofterwaretask;
import orgspringframeworkschedulingannotationScheduled;
import orgspringframeworkstereotypeComponent;
/
基于注解的Spring定时器
@author yuxiSofterware
/
@Component
public class DemoTask {
/
定时任务,每五秒钟执行一次
/
@Scheduled(corn=" /5 ")
public voidprintSomeThing() {
Systemoutprintln("XML定时器触发。");
}
}
3 关于定时器,定时任务时间的说明
定时表达式的格式:秒 分 时 日 月 周 年(可选)。
字段名 允许的值 允许的特殊字符
秒 0-59 , - /
分 0-59 , - /
小时 0-23 , - /
日 1-31 , - / L W C
月 1-12 or JAN-DEC , - /
周几 1-7 or SUN-SAT , - / L C #
年 (可选字段) empty, 1970-2099 , - /
“”字符:表示不确定的值
“,”字符:指定数个值
“-”字符:指定一个值的范围
“/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m
“L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X
“W”字符:指定离给定日期最近的工作日(周一到周五)
“#”字符:表示该月第几个周X。6#3表示该月第3个周五1、第一步,先新建一个properties文件,
appproperties里面内容
admin=admin
test=test
2、第二步,新建一个xml文件,在applicationContextxml,
<!-- 用来解析Java Properties属性文件值(注意class指定的类)-->
<bean id="placeholderConfigurer" class="orgspringframeworkbeansfactoryconfigPropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:appproperties</value>
</list>
</property>
</bean>
<!-- 把properties里面的信息读进来: -->
<bean id="report" class="javalangString">
<constructor-arg value="${admin}"/>
</bean>获取spring框架管理的类实例的方法有多种,如下:
方法一:在初始化时保存ApplicationContext对象
代码:
ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContextxml");
acgetBean("beanId");
说明:
这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况。
方法二:通过Spring提供的工具类获取ApplicationContext对象
代码:
import orgspringframeworkwebcontextsupportWebApplicationContextUtils;
ApplicationContext ac1 =
WebApplicationContextUtilsgetRespringmvc + spring + hibernate 配置时需要两个xml的配置文件,一个是配置spring容器的,一个是配置hibernate持久层的,你报的什么错,最好贴个图出来,才能对症下药观察下面这个xml文件(spring框架文件头):
假设有如下情况:
有个 tablexml 文件,在表格中记载着歌词:
还有另外一个 tablexml 文件,记录着一张桌子的信息:
如果我们工作需要同时使用这两个xml文件,这样就会出现2个 <table> 元素,必然会造成解析错误,无法正常处理。<br />
github 就是命名空间前缀,它主要是代指后面命名空间的,不用每次都写那么长,用前缀就可以了。
回到 table 的问题,在xml文件中声明了命名空间后,可以写成如下形式
以及:
这样就对 table 以及其子元素进行了区分,不会造成同名冲突问题。
xsd文件其实也是xml文件,它的作用是校验一个xml文件的格式,dtd文件也是同样作用,但是xsd功能更加强大,语法更加优雅。
这是一个<schema>标签,它是xsd的核心标签:
以上就是xml/xsd文件命名空间配置介绍。
参考资料:
<br /><br />
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)