Struts2学习:Action获取properties文件的值
配置文件路径:
配置内容:
方法一:
Action内被调用的函数添加下段代码:
Properties props = new Properties(); props.load(UploadFileAction.class.getClassLoader().getResourceAsStream("/struts/struts-config.properties")); System.out.println(props.getProperty("destPath"));
执行效果:
为了便于其他Action重用,可以将此部分写成一个工具类:
package com.struts2demo.demo.util; import com.opensymphony.xwork2.Action; import java.io.IOException; import java.util.Properties; public class StrutsConfig { public Properties GetProperties(Class actionClass) throws IOException { Properties props = new Properties(); props.load(actionClass.getClassLoader().getResourceAsStream("/struts/struts-config.properties")); return props; } }
然后Action里如此调用即可:
Properties props = new StrutsConfig().GetProperties(UploadFileAction.class); System.out.println(props.getProperty("destPath"));
方法二:@ConfigurationProperties + @PropertySource
package com.example.spdemo.controller; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.PropertySource; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @ConfigurationProperties @PropertySource("/struts/struts-config.properties") public class Index { private String destPath; @RequestMapping("/") public String getProps() { return destPath; } public String getDestPath() { return destPath; } public void setDestPath(String destPath) { this.destPath = destPath; } }
对于非application.properties的配置,需@PropertySource指明配置文件的路径;否则默认是从application.properties中读取配置,不需要写该注解。
方法三:spring的xml配置中配置上properties,然后通过@Value注入(该方法在Spring MVC中验证过,但是不知道集成struts2后是否受影响)
spring-context.xml
<util:properties id="APP_PROP" local-override="true" location="classpath:owlforest.properties" />
owlforest.properties
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/linfu_test_db?useUnicode=true&characterEncoding=utf-8 jdbc.username=root jdbc.password=root
代码样例:
package com.owlforest.www.config.dao; import com.alibaba.druid.pool.DruidDataSource; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; @Configuration public class DataSourceConfiguration { @Value("#{APP_PROP['jdbc.driver']}") private String driver; @Value("#{APP_PROP['jdbc.url']}") private String url; @Value("#{APP_PROP['jdbc.username']}") private String username; @Value("#{APP_PROP['jdbc.password']}") private String password; public DruidDataSource createDataSource(){ DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(driver); dataSource.setUrl(url); dataSource.setUsername(username); dataSource.setPassword(password); dataSource.setDefaultAutoCommit(true); return dataSource; } }
方法四:使用spring的PropertiesFactoryBean
@Bean public PropertiesFactoryBean getProperties() { PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean(); propertiesFactoryBean.setLocations(new ClassPathResource("application.properties")); return propertiesFactoryBean; }
调用:
@Autowired private PropertiesFactoryBean propertiesFactoryBean; public String getProperties(String key) throws IOException { Properties properties = propertiesFactoryBean.getObject(); return properties.getProperty(key); }
方法五:不使用自动装配,使用classLoader获取Properties
MailUtil.class.getClassLoader().getResourceAsStream("/config.properties")
Struts2学习:Action获取properties文件的值的更多相关文章
- Java学习-021-Properties 获取配置项对应的值
在日常的脚本编写过程中,通常会获取配置文件中的配置项,以执行相应的业务逻辑. 小二上码...若有不足之处,敬请大神指正,不胜感激! 获取配置项值的源码如下所示: /** * Get value fro ...
- 【Properties】获取Properties文件
获取Properties文件 package com.chinamobile.epic.tako.v2.query.commons; import org.springframework.core.i ...
- 获取properties文件的内容
获取properties文件的内容 public void test() throws Exception{ String resource = "application.propertie ...
- spring Controller 层注解获取 properties 里面的值
前言:最近在做一个项目,想要在 controller 层直接通过注解 @Value("")来获取 properties 里面配置的属性. 这个其实和 springmvc.sprin ...
- struts2,action上传文件
通过servlet实现文件上传,可以用用servlet接受到request的值的话:主要是这句话 List<?> items = upload.parseRequest(request); ...
- Spring获取properties文件中的属性
1.前言 本文主要是对这两篇blog的整理,感谢作者的分享 Spring使用程序方式读取properties文件 Spring通过@Value注解注入属性的几种方式 2.配置文件 applicatio ...
- 获取.properties配置文件属性值
public class TestProperties { /** * * @Title: printAllProperty * @Description: 输出所有配置信息 * @param pro ...
- spring通过静态方法获得properties文件的值
获得spring bean方法 @Component public class BeanUtils implements ApplicationContextAware { private stati ...
- struts2学习笔记之十:文件上传
Struts2的上传 1.Struts2默认采用了apache commons-fileupload 2.Struts2支持三种类型的上传组件 3.需要引入commons-fileupload相关依赖 ...
随机推荐
- linux系统中安装JDK 查看安装的ava版本
一.安装JDK 1.在/usr/目录下创建java目录 [root@localhost ~]# mkdir/usr/java[root@localhost ~]# cd /usr/java 2.下载j ...
- mybatis异常:Caused by: java.lang.IllegalArgumentException: Result Maps collection already contains value for。。。。。。
框架环境:ssm 昨天下午技术经理更新了下表结构,多加了一个字段. 之后我根据新的mapper.xml文件写了增删改查的操作.重新启动之后不是这个错就是那个错,一大堆错误,头疼. 像类似于NoSuch ...
- MAC JDK默认安装路径 JAVA路径
打开终端,执行 /usr/libexec/java_home -V 默认JDK1.6(Apple自带JDK)路径: /System/Library/Java/JavaVirtualMach ...
- python slave status 2
#!/usr/bin/env python import MySQLdbimport contextlib @contextlib.contextmanagerdef mysql(Host,Port, ...
- chrome flash
chrome://settings/content/flash 在Chrome地址栏中输入:chrome://settings/content/flash,进入Flash设置,勾选允许网站运行flas ...
- SoapUI 5.2.1 调试工具
SoapUI 5.2.1 调试工具 1.打开soapUI. 2.新建一个项目,实例如下: 点击ok后在soapUI界面左侧会显示出此项目,如图: 2.创建测试用例: a.新建用例组,选择此项目右键,新 ...
- Atom窗口切换和放大或者缩小
Atom窗口切换和放大或者缩小 快捷键就是 F11
- java网络编程Socket通信详解
Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket.像大家熟悉的QQ.MSN都使用了Socket相关的技术. ...
- Java第05次实验提纲(Java图形界面编程)
1. Swing与NetBeans 使用NetBeans编写简单界面.见GUI实验参考文件中的0.第06次实验(图形程序设计.事件处理与Swing).doc 题目1: Swing用户界面组件与事件处理 ...
- Java第07次实验提纲(异常)
PTA与参考资料 题集:集合 异常实验文件 第1次实验 1.1 7-1 常用异常 如何进行强制转换.父类型转化为子类型常见错误. 如何捕获多种类型的异常 简要输出异常信息,System.out.pri ...