java bean配置文件_Spring中多配置文件及引用其他bean的方式
Spring多配置文件有什么好处?
按照目的、功能去拆分配置文件,可以提高配置文件的可读性与维护性,如将配置事务管理、数据源等少改动的配置与配置bean单独分开。
Spring读取配置文件的几种方式:
1、使用Spring自身提供的ApplicationContext方式读取
在Java程序中可以使用ApplicationContext两个实现类ClassPathXmlApplicationContext以及FileSystemXmlApplicationContext来读取多个配置文件,他们的构造器都可以接收一个配置文件数组。
如: ApplicationContext ctx = new ClassPathXmlApplicationContext(configLocations);与采用FileSystemXmlApplicationContext创建ApplicationContext的方式相似,区别仅在于二者搜索配置文件的路径不同:ClassPathXmlApplicationContext通过CLASSPATH路径搜索配置文件:而FileSystemXmlApplicationContext则在当前路径搜索配置文件。
方法一:在初始化时保存ApplicationContext对象
代码:
ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml");
ac.getBean("beanId");
说明:
这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况。
方法二:通过Spring提供的工具类获取ApplicationContext对象
代码:
import org.springframework.web.context.support.WebApplicationContextUtils;
ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc)
ApplicationContext ac2 = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc)
ac1.getBean("beanId");
ac2.getBean("beanId");
说明:
这种方式适合于采用Spring框架的B/S系统,通过ServletContext对象获取ApplicationContext对象,然后在通过它获取需要的类实例。
上面两个工具方式的区别是,前者在获取失败时抛出异常,后者返回null。
方法三:继承自抽象类ApplicationObjectSupport
说明:
抽象类ApplicationObjectSupport提供getApplicationContext()方法,可以方便的获取到ApplicationContext。Spring初始化时,会通过该抽象类的setApplicationContext(ApplicationContext context)方法将ApplicationContext 对象注入。
方法四:继承自抽象类WebApplicationObjectSupport
说明:
类似上面方法,调用getWebApplicationContext()获取WebApplicationContext
方法五:实现接口ApplicationContextAware
说明:
实现该接口的setApplicationContext(ApplicationContext context)方法,并保存ApplicationContext 对象。Spring初始化时,会通过该方法将ApplicationContext 对象注入。
以上方法适合不同的情况,请根据具体情况选用相应的方法。
2、使用web工程启动时加载
在web.xml中配置web容器启动是自动加载哪些配置文件:
contextConfigLocation
/WEB-INF/spring/spring-core.xml
springMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
/WEB-INF/spring/spring-servlet.xml
1
springMVC
/
多个的时候可以用 * 号来代替。
app
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
/WEB-INF/applicationContext*.xml,/WEB-
INF/user_spring.xml
1
3、Xml配置文件中导入其他配置文件
在/WEB-INF/applicationContext.xml配置应用服务去加载,可以在applicationContext.xml中用import引入其他的配置文件
xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop" 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-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd">
相关文章:

putty 串口登录开发板
安装putty 多个平台均可以安装putty pc端配置 使用串口线连接开发板 ls /dev 查看是否出现类似于ttyUSBx的文件 sudo putty 弹出页面,选择Serial Serial line填写/dev/ttyUSBx Speed填写115200(根据不同开发板,选择不同参数) 依次点击Load࿰…

win7下解决Android SDK Manger慢
2019独角兽企业重金招聘Python工程师标准>>> 今天准备做个Android小程序,以前配置的环境太久了,于是想配最新,但是花了大半天的时间遇到各种问题,最终还是配置好了。 1、首先修改C:\Windows\System32\drivers\etc\host…

Linux 工具进阶
参考网址 https://linuxtools-rst.readthedocs.io/zh_CN/latest/advance/index.html 转载于:https://www.cnblogs.com/artesian0526/p/9712258.html

ASP.NET MVC:利用ASP.NET MVC4的IBundleTransform集成LESS
背景 LESS确实不错,只是每次写完LESS都要手工编译一下有点麻烦(VS插件一直没有安装好),昨天在官方看到了如何用IBundleTransform集成LESS,今天就记录一下。 参考资料:http://www.asp.net/mvc/tutorials/mvc…

java锁屏_JAVA设置桌面不锁屏设置
//下面是编译命令// javac -encoding utf-8 Main.javaimport javax.swing.*;import java.awt.*;import java.awt.event.*;public class Main extends WindowAdapter {JLabel label null;public Main() {JFrame jFrame new JFrame("保持打开就不会锁屏");Container …

网线直连开发板
pc 端配置 点击pc端无线链接图标编辑链接以太网编辑IPv4设置方法:与其他计算机共享根据putty获取的动态ip使用ssh登录 解决 ip 无法登录问题 设置 pc 端 ip 和开发板 ip 在同一个网段 比如开发板 ip 是 10.42.0.123 可以设置自己机器的 ip 为 10.42.0.11 sudo i…

linux系统中指定端口连接数限制
限制22端口只能有两个连接 [code] iptables -P INPUT DROP iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp --dport 22 -m connlimit --connlimit-above 2 -j REJECT iptables -A INPUT -p tcp --dport 22 -j ACCEPT [/code] 在此…

PHP-错误处理
错误处理 一、错误的分类 1、语法错误: 程序没法运行,直接提示语法错误。 2、运行时错误: 只有程序运行到某行,或在某些特定的情形下运行才会发生的错误。 3、逻辑错误: 程序从头到尾运行都没有发生(并提示…

C语言的变量的内存分配
今晚看了人家写的一个关于C语言内存分配的帖子,发现真是自己想找的,于是乎就收藏了。。。 先看一下两段代码: char* toStr() {char *s "abcdefghijkl";return s; } int main() {cout << toStr() << endl;return 0; }…

java打包_java工程打包(方式一)
1、新建工程myprojectpackage cn.zj;public class TestMain {public static void main(String[] args) {System.out.println("Hello World!");}}2、右击Java工程选择Export—>选择JAR file—>Next3、选择要打包的文件,不需要的文件不必打包…

s32v 开发板安装 apex 驱动
安装驱动 首先要获取到 apex.ko 文件,这个应该是硬件厂商提供,执行下面命令安装 首先需要给 apex.so 文件加上可执行权限 insmod apex.ko查看是否安装成功 执行下面命令,查看是否安装成功,如果安装成功,执行的结果中…

android常见错误与问题
1. Unable to start activity ComponentInfo 原因有很多种,我碰到一种: 可能是当前Activity里引用的View,并不存在于绑定的Layout里,而是在其他的Layout里,在Copy代码的时候,常会发生这种问题。

链式前向星(模板)
一种非常厉害的存图的数据结构! 本质:模拟链表的操作,链式存储图。(2,3都可以模拟链表的操作,替代链表) (1)二维数组存图:Map[x][y],一维代表出发…

tar 打包问题
项目中使用到 tar 文件,同一个 tar 文件解压之后在压缩,在程序执行的时候不能使用了 原因是 tar 对文件名长度有限制,当文件名过程的时候,使用 --formatustar 进行压缩

QT webkit学习笔记(2)
五、QWebDataBase Class介绍 QWebDataBase提供了对基于JavaScript创建的HTML 5数据库。新一代的HTML 5标准也提供对基于javaScript SQL数据库访问的支持。QWebDataBase就是这些数据库的C接口。关于HTML 5的详情,可以参见HTML 5 Draft Standard. 六、QWebHistory Cla…

java 数组越界异常_数组越界异常 求解决!!!
源自:4-3 滚动状态判断与处理数组越界异常 求解决!!!package com.example.imooc;import java.io.BufferedInputStream;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.ne…

WPF外包公司—北京动点软件WPF最新的电子书整理打包下载
最近看到很多朋友寻找以前的WPF电子书,其实这些书在书店目前是很难买到了,不过还是很经典的,希望大家收藏~ WPF揭秘 http://download.csdn.net/detail/ping_vip/3935100 WPF经典教程 http://kiccp.sinaapp.com/store/info/83 WPF程序设计指南…

java后端判断用户是否关注公众号
/*** 判断用户是否关注了公众号* param openid* return*/ public static boolean judgeIsFollow(String openid){int subscribe 0; // String url "https://api.weixin.qq.com/cgi-bin/user/info?access_token"token"&openid"openid"&a…

QtCreator动态编译jsoncpp完美支持x86和arm平台
如果是做嵌入式开发。 在Qt下支持JSon最好的办法,可能不是采用qjson这个库。QJson这个库的实例只提供了x86环境下的编译方法。 Installing QJson-------------- QJson requires:- Qt 4.0 or greater- cmake 2.6 or greater For Unix/Linux/Mac: mkdir build cd b…

RADStudio连接MySQL_使用FireDac(Delphi)在Firebird中创建数据库
我最近从AnyDac改为FireDac(8.0.5.3365).我们正在运行Delphi 2006.当我使用此组件的AnyDac版本时,我可以通过执行以下操作来创建新数据库.设置我的连接fConnection.LoginPrompt : false;fConnection.ResourceOptions.SilentMode : true;fConnection.Params.Clear;fConnection.P…

valgrind 使用 kcachegrind 查看函数运行时间
安装 首先安装运行分析函数时间的工具 kcachegrind 下载安装包 http://kcachegrind.sourceforge.net/,下载最新的 tar.gz 文件 解压文件,进入解压之后的目录,从 README 中可以找到安装方式,这里记录一下 cmake . make -j8 sudo …

Red Hat Enteripse Linux5下配置yum源的方法
1。确保RHEL5中已经安装了yum。2。修改源配置文件 #gedit /etc/yum.repos.d/CentOS-Base.repo在其中加入以下内容[base]nameCentOS-5-Base#mirrorlisthttp://mirrorlist.centos.org/?release$releasever5&arch$basearch&repoos#baseurlhttp://mirror.cento…

echarts如何修改散点大小
由于工作需要 懵懵懂懂接触到了echarts 很牛逼 遇到的问题是如何修改散点图中点点的大小,其他的图我没有涉及哦~ demo地址 http://www.echartsjs.com/examples/editor.html?cscatter-single-axis 找到左侧代码 1 symbolSize: function (dataItem) { 2 3 return da…

字节跳动java笔试题目_牛客网--字节跳动面试题--特征提取
牛客网--字节跳动面试题--特征提取博客说明文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!来源链接:特征提取 来源:牛客网题目小明…

基于php下载文件的详解
基于php下载文件的详解 本篇文章是对php下载文件进行了详细的分析介绍,需要的朋友参考下php下载文件,比如txt文件。出现的效果就是,弹出浏览器自带的下载框,出现另存为操作。有时候会出现内存溢出和超时的现象。超时的话ÿ…

C#中DateTime.Now.Ticks的用法和说明
在C#中DateTime.Now.Ticks的常用于标示: 自 0001 年 1 月 1 日午夜 12:00:00以来,到当前时间为止:以0.1纳秒(1纳秒0.00000 0001秒)为单位的时间间隔数。用于非常精确的计算中使用。转载于:https://www.cnblogs.com/woaic/archive/2012/09/13/…

spring入门(二) 使用注解代替xml配置
1.导包(略) 2.applicationContext.xml如下: 1 <?xml version"1.0" encoding"UTF-8"?>2 <beans xmlns"http://www.springframework.org/schema/beans"3 xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"4 …

qt 找不到 -lpulse-mainloop-glib,找不到 -lpulse问题
问题:使用 QT 编写视频展现程序报错找不到运行时库文件 解决办法: 首先 sudo find / -name libpulse.so* 然后 sudo cp /usr/lib/x86_64-linux-gnu/libpulse.so.0 /usr/lib/libpulse.so 对于libpulse-mainloop-glib 首先find / -name libpulse-mainl…

INNO SETUP 获得命令行参数
INNO SETUP 获得命令行参数 原文 http://www.cnblogs.com/ahuo/archive/2009/07/30/1534998.html [Code]function GetMyParam(PName:String):String;var CmdLine :String; CmdLineLen :Integer; i :Integer;begin CmdLineLen:ParamCount(); fori:0to CmdLineLen dobeg…

java父子表_数据库二维表转父子关系,java,stream,list
需求描述:把数据库中的省市二维表,查询到内存中后,转换为父子层级关系。通过jdk8中的stream方式实现。数据关系:320004 福建省 320507 南平市430000 湖南省 430100 长沙市320000 江苏省 320583 昆山市…