1.简介
在SSH框架下,假设我们将配置文件放在项目的src/datasource.properties路径下,Spring的配置文件也是src/applicationContext.xml路径下,那么我们可以借助Spring的property-placeholder读取配置文件,然后注入Bean中。我们在程序中,可以根据Bean的Id,获取注入的值。这样我们就可以借助Spring来读取配置文件。
2.Code
2.1Student.java
package edu.njupt.zhb.model.mysql; /** * Student entity. @author MyEclipse Persistence Tools */ public class Student implements java.io.Serializable { // Fields private String id; private String name; private String course; private Integer score; private String remarks; // Constructors /** default constructor */ public Student() { } /** minimal constructor */ public Student(String name, String course, Integer score) { this.name = name; this.course = course; this.score = score; } /** full constructor */ public Student(String name, String course, Integer score, String remarks) { this.name = name; this.course = course; this.score = score; this.remarks = remarks; } // Property accessors public String getId() { return this.id; } public void setId(String id) { this.id = id; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public String getCourse() { return this.course; } public void setCourse(String course) { this.course = course; } public Integer getScore() { return this.score; } public void setScore(Integer score) { this.score = score; } public String getRemarks() { return this.remarks; } public void setRemarks(String remarks) { this.remarks = remarks; } }
2.2datasource.properties中的配置
#student config student.name=Haibo student.id=1012010638 student.course=Java student.score=90 student.remarks=Come from Properties
2.3Spring配置文件applicationContext.xml部分配置
<!-- 引入datasource配置文件 --> <context:property-placeholder location="classpath:datasource.properties" /> <bean id="student" class="edu.njupt.zhb.model.mysql.Student"> <property name="id" value="${student.id}" /> <property name="name" value="${student.name}" /> <property name="course" value="${student.course}" /> <property name="score" value="${student.score}" /> <property name="remarks" value="${student.remarks}" /> </bean>
2.4读取Spring中的Bean函数
/* * $filename: BeanUtils.java,v $ * $Date: 2013-12-9 $ * Copyright (C) ZhengHaibo, Inc. All rights reserved. * This software is Made by Zhenghaibo. */ package edu.njupt.zhb.tools; import org.apache.struts2.ServletActionContext; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; /* *@author: ZhengHaibo *web: http://blog.csdn.net/nuptboyzhb *mail: zhb931706659@126.com *2013-12-9 Nanjing,njupt,China */ public class BeanUtils { /** * 获取Spring中注入的Bean * @param beanId:id * @return */ public static Object getSpringBean(String beanId){ //Spring配置文件的路径 String xmlRealPath = ServletActionContext.getServletContext().getRealPath("/WEB-INF/classes/applicationContext.xml"); ApplicationContext ac = new FileSystemXmlApplicationContext(xmlRealPath); return ac.getBean(beanId); } }
2.5我们可以通过如下方式,获得Spring注入的值
Student stu = (Student)BeanUtils.getSpringBean("student");
2.6用JSONObject工具打印一下stu对象的值
System.out.println(JSONObject.fromObject(stu).toString());
2.7运行结果为:
{"course":"Java","id":"1012010638","name":"Haibo","remarks":"Come from Properties","score":90}
未经允许不得用于商业目的