spring怎么读取properties(如何在SpringBoot下读取自定义properties配置文件)
本文目录
- 如何在SpringBoot下读取自定义properties配置文件
- spring boot application.properties配置中的内容怎么读取出去的
- spring 怎么读取properties
- Spring多项目bean冲突及properites读取验证
- spring 框架的xml文件如何读取properties文件数据
- spring mvc 怎么读取properties文件
如何在SpringBoot下读取自定义properties配置文件
创建个properties文件,然后向里面写配置就可以了,然后写个类去读取就可以了!
spring boot application.properties配置中的内容怎么读取出去的
public void getCsisUrl(){Properties p = new Properties();try{FileInputStream in = new FileInputStream(ServletActionContext.getRequest().getRealPath("/WEB-INF/classes/demo.properties"));p.load(in);in.close();String csisUrl= p.getProperty("csisUrl");//System.out.println(csisUrl);}catch(Exception e){e.printStackTrace();}}
spring 怎么读取properties
在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选择配置文件来完成,本文根据我工作中用到的读取properties配置文件的方法小小总结一下,主要叙述的是spring读取配置文件的方法。用spring读取配置文件,最典型的就是关于数据库的连接,下面就是一个例子:文件jdbc.properties:-------------------------------------------------------------------------------------driverClassName com.MySQL.jdbc.Driverurl jdbc:mysql://localhost:3306/testusername rootpassword 1234------------------------------------------------------------------------------------引入spring的相关jar包,在applicationContext.xml中配置:-------------------------------------------------------------------------------------《?xml version="1.0" encoding="UTF-8"?》***隐藏网址***《beans》《bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"》《property name="location"》《value》src/jdbc.properties《/value》《/property》《/bean》《bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"》《property name="driverClassName"》《value》${driverClassName}《/value》《/property》《property name="url"》《value》${url}《/value》《/property》《property name="username"》《value》${username}《/value》《/property》《property name="password"》《value》${password}《/value》《/property》《/bean》《bean id="dao" class="com.zh.model.DataDAO"》《property name="datasource"》《ref local="datasource"/》《/property》《/bean》《/beans》
Spring多项目bean冲突及properites读取验证
目前都配置了相同的bean,期望是以后能配置5个不同的数据源 可以看到bean被覆盖了4次,只有一个bean生效 所有该类型的bean在声明时候被声明为primary 发生异常,可以看到不同id的bean由于都被设置成primary导致异常 很容易理解,primary对于不同ID相同的Class实例来说只能有一个,对于相同的ID实例则会直接覆盖正常启动,可以看到创建了两个相同类型的实例可以看到发生覆盖情况,因此可以总结出 bean是否发生覆盖只跟beanId有关而跟bean的类型无关 当两个相同的类型的bean都被配置成primary时会发生异常 当需要配置多数据源时,需要为每个子系统的bean配置不同的ID,以防发生覆盖下面再接着说一下Springboot对.properties文件的读取 我们知道在使用springboot的脚手架建立项目时默认会有application.properties的配置文件 Springboot读取.properties文件的读取顺序如下所示其中需要注意的是Springboot对于同文件名只读取一次,高优先级覆盖低优先级 以上是错误的解读,实际上SpringBoot是对相同的属性以先读取的为主,文件仍然会读取多次 如果上面的图容易产生混乱的话看下面的顺序就好理解了通俗的说SpringBoot默认只加载application-{profile}.properites 当没有指定Profile时会默认加载application.properties文件 而当指定了SpringBoot的Profile时则会默认加载application-{profile}.properties文件当然也可以让SpringBoot除了加载默认文件以外也可以人为指定加载额外的properties文件 在我们的项目中则是通过这种方式进行这样SpringBoot会去同时检索application-{profile}和application文件 检索顺序如上面的图所示接下面我们进行验证 配置两个bean 第一个bean这里的属性通过主项目的application-dev.properties文件进行注入第二个bean属性通过子项目的application.properties文件进行注入 子项目目录结构可以看出并没有符合规范结构 我们让主项目引用子项目的jar包 运行结果启动报错,没有读取成功 接下来我们修改子项目的结构可以看到现在已经符合规范结构,重新打包编译再进行验证正常启动,说明此时属性注入正常,application.properties被成功读取 然后我们修改application.properties文件名为application-dev 预期结果会出现覆盖现象 正常启动,打脸了,翻阅资料发现 文件的读取是多次的,对相同的属性值来说以先读取的为标准,但是不同的属性依然可以正常读取 通过验证发现,想要在子项目配置多个子项目的情况下每个项目想引用不同的数据源首先需要保证 1.每个子项目必须配置不同ID的bean,否则出现覆盖现象,需要注意的是各个子系统中的sqlSessionFactiory所指定的mapper.xml路径不要出现重复,否则会造成一条SQL被多个bean命中切面 2.子系统所指定的.properties文件中与主系统.properties文件名相同时,若出现相同属性,以先读取的为主 3.除非特殊设置读取路径,否则需要按照规范放在指定路径下容器才能读取properties文件
spring 框架的xml文件如何读取properties文件数据
方法一:在初始化时保存ApplicationContext对象 代码: ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml"); ac.getBean("beanId"); 说明: 这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况。
spring mvc 怎么读取properties文件
(1)在spring-mvc.xml加入:***隐藏网址******隐藏网址******隐藏网址***《!-- 方式2:加载配置文件 --》《util:properties id="applicationProps" location="classpath:conf/config_development.properties"/》(2)在controller中加入:@Autowiredprivate Properties applicationProps;public Properties getApplicationProps() {return applicationProps;}public void setApplicationProps(Properties applicationProps) {this.applicationProps = applicationProps;}(3).在controller中利用applicationProps读取配置文件String jumpUrl = applicationProps.getProperty("learn.jump.url");望采纳~
本文相关文章:
虚拟机配置java环境(在vm虚拟机里配置的java环境变量,总是无效)
2024年10月20日 20:15
python编辑器vscode(vscode配置文件的关系)
2024年10月17日 21:20
mybatis设置日志级别(怎么配置mybatis使sql语句不打印出来)
2024年10月14日 06:35
易语言教程取所有配置节名和配置项名(易语言配置项怎么保存和读取多条配置项名称)
2024年10月6日 23:35
持续集成与持续部署实践 pdf(如何在 linux 上配置持续集成服务)
2024年9月29日 02:55
datasource health check failed(java中运行时出现下面的错误是什么原因呢其中有配置spring)
2024年9月26日 04:16
phpstorm配置xdebug(如何在xampp环境下配置phpstrom xdebug)
2024年9月10日 02:30
oracle11g 数据库创建失败(oracle 11g_r2 创建数据库时 Enterprise Manager 配置失败)
2024年9月6日 19:50
centos7网卡配置(centos 7虚拟机怎么配置网卡eno 16)
2024年8月31日 12:35
xml常用标签(web.xml文件主要配置有哪些,都有什么含义)
2024年8月26日 11:20
feignclient(Feign Client超时时间配置以及单独给某接口设置超时时间方法记录)
2024年8月20日 09:55
hibernate二级缓存有什么用(如果不配置hibernate的二级缓存的话,是不是就体现不出hibernate的优越性)
2024年8月16日 14:55
vscode配置python(mac下VScode怎么配置编译Python)
2024年8月11日 06:07
java获取项目中的文件(java文件怎么获取项目下的配置文件)
2024年8月9日 18:30
centos java环境配置(如何在阿里云Centos7.0上配置java web环境)
2024年8月5日 22:10
更多文章:
c语言string类型(请问c语言能不能用string类型)
2024年7月22日 06:31
css页面自适应屏幕大小(css怎么让一张图片适应任何屏幕大小的电脑平铺)
2024年9月5日 15:40
excel表格制作10以内加减法(如何用excel 生成10以内加减法且得数不大于10)
2024年7月21日 11:50
regsvr32注册命令(“regsvr32.exe”是什么意思)
2024年6月28日 01:13
php+mysql+ajax切换tab(关于js结合php对mysql进行操作的几个问题,本人实在新手不会做)
2024年7月12日 17:30
jsarray删除元素(c++怎么从类定义的数组中删除某一个元素)
2024年7月18日 04:52
phpmyadmin打不开403(访问phpmyadmin出现HTTP403 禁止访问)
2024年8月9日 03:26
手机系统os是什么意思啊(手机的…OS是什么系统与Android有什么不同)
2024年10月12日 05:25
easyui datagrid 清空(delphi中 如何清空datagrid里的数据)
2024年8月20日 18:15