test.name=${name}userPageSize=5test.abc=abc2)配置文件中将.properties文件引入i.引入context的Schema命名空间,配置文件中应包含<context:annocation-config />标签用于使系统可以识别各种注解,但由于自动扫描compoent标签中已经自动注入了以上功能,所以只要<context:component-scan/>标签即可实现,无需再添加。命名空间引入:<?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:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:task="http://www.springframework.org/schema/task" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-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/task http://www.springframework.org/schema/task/spring-task-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd">ii、配置文件的引入多个文件同时引入:<bean id="propertyConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:jdbc.properties</value> <value>classpath:config.properties</value> </list> </property> </bean> 单个文件引入:<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:jdbc.properties" /> </bean>注意:在使用springmvc时,实际上是两个Spring容器,dispatcher-servlet.xml是一个,我们的cotroller在这里;applicationContext.xml是另外一个,数据源以及数据库配置在这里。在service中可以拿到@Value值是因为通常我们将获取属性文件引入在applicationContext.xml中,这样在Controller中是取不到的,故必须在dispatcher-servlet.xml中把属性文件再定义一下。3)使用@Value注解i: $用法@Controller@RequestMapping("/user")public class UserController { @Resource(name = "userServiceImpl") private UserServiceImpl userService; @Resource(name="userTest") private UserTest userTest; @Value("${test.abc}") private String testabc; @Value("${userPageSize}") private String userPageSize;ii:#的用法@Component public class User { private static final long serialVersionUID = 952204796252534860L; private int id; private String name; private String passWord; private String nickname = null; private Date time = null; private String action = null; private String token;//生成的访问凭证token private int status; //1 有效 0 测试用户 -1删除// private List<Role> roles = new ArrayList<Role>(); @Value("${userPageSize}") private String userPageSize; public String getUserPageSize() { return userPageSize; } public void setUserPageSize(String userPageSize) { this.userPageSize = userPageSize; }@Controller //@PropertySource("classpath:config.properties") @RequestMapping("/user") public class UserController { @Resource(name = "userServiceImpl") private UserServiceImpl userService; @Resource(name="userTest") private UserTest userTest; @Value("${test.abc}") private String testabc; @Value("#{user.userPageSize}") private String testabc2; @Value("${userPageSize}") private String userPageSize;注意:实体类上必须有注解标注@Component可以泛指各种组件,才可生效————————————————————————————————————————————————读取pom文件配置参数:1、pom参数配置:<profiles> <profile> <id>local</id> <properties> <name>xinrui</name> <db_url>jdbc:MySQL://220.181.29.165:3306/video?useUnicode=true&characterEncoding=UTF8&autoReconnect=true</db_url>//注意xml中不识别&要用转译符号& <db_username>123</db_username> <db_password>123</db_password> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> </profile> </profiles><build> <finalName>storm</finalName><!-- 指定的动态配置文件目录 --> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> </includes> <filtering>true</filtering> </resource> </resources> </build>2、properties参数配置driver=com.mysql.jdbc.Driverurl=${db_url}username=${db_username}password=${db_password}3、maven clean,编译运行——————————————————————————————————————1、maven加载时候的文件可以查看properties文件是否已经加载参数,注意清clean缓存 这是文件路径:2、在maven的pom.xml文件中,<properties>用于定义全局变量,在pom中通过${property_name}的形式引用变量的值。pom 的全局变量可以分为以下几种:a、系统shell的环境变量env.property_name,如${env.PATH}表示当前引用该系统的PATH变量值,PATH必须大写b、java System Properties即Java属性文件,如${java.home}c、project.property_name,直接引用POM中的元素值,如${project.version}表示引用<propject><version>1.0</version></project>中的1.0d、settings.property_name,直接引用setting.xml中的元素值,如${settings.offline}表示引用<setting><offline>false</offline></setting>中的falsee、property_name,直接访问<properties>中已经定义的变量值,如${myVar}表示引用<properties><myVar>myvalue</myVar></properties>中的myvalue3、使用Maven编译项目遇到——“maven编码gbk的不可映射字符”解决办法:<!-- 指明编译源代码时使用的字符编码,maven编译的时候默认使用的GBK编码, 通过project.build.sourceEncoding属性设置字符编码,告诉maven这个项目使用UTF-8来编译 --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties>
新闻热点
疑难解答