分类: 【java】2013-12-09 16:29 1020人阅读 评论(0) 收藏 举报

1.简介

在SSH框架下,假设我们将配置文件放在项目的src/datasource.properties路径下,Spring的配置文件也是src/applicationContext.xml路径下,那么我们可以借助Spring的property-placeholder读取配置文件,然后注入Bean中。我们在程序中,可以根据Bean的Id,获取注入的值。这样我们就可以借助Spring来读取配置文件。

2.Code

2.1Student.java

  1. package edu.njupt.zhb.model.mysql;
  2. /**
  3. * Student entity. @author MyEclipse Persistence Tools
  4. */
  5. public class Student  implements java.io.Serializable {
  6. // Fields
  7. private String id;
  8. private String name;
  9. private String course;
  10. private Integer score;
  11. private String remarks;
  12. // Constructors
  13. /** default constructor */
  14. public Student() {
  15. }
  16. /** minimal constructor */
  17. public Student(String name, String course, Integer score) {
  18. this.name = name;
  19. this.course = course;
  20. this.score = score;
  21. }
  22. /** full constructor */
  23. public Student(String name, String course, Integer score, String remarks) {
  24. this.name = name;
  25. this.course = course;
  26. this.score = score;
  27. this.remarks = remarks;
  28. }
  29. // Property accessors
  30. public String getId() {
  31. return this.id;
  32. }
  33. public void setId(String id) {
  34. this.id = id;
  35. }
  36. public String getName() {
  37. return this.name;
  38. }
  39. public void setName(String name) {
  40. this.name = name;
  41. }
  42. public String getCourse() {
  43. return this.course;
  44. }
  45. public void setCourse(String course) {
  46. this.course = course;
  47. }
  48. public Integer getScore() {
  49. return this.score;
  50. }
  51. public void setScore(Integer score) {
  52. this.score = score;
  53. }
  54. public String getRemarks() {
  55. return this.remarks;
  56. }
  57. public void setRemarks(String remarks) {
  58. this.remarks = remarks;
  59. }
  60. }

2.2datasource.properties中的配置

  1. #student config
  2. student.name=Haibo
  3. student.id=1012010638
  4. student.course=Java
  5. student.score=90
  6. student.remarks=Come from Properties

2.3Spring配置文件applicationContext.xml部分配置

  1. <!-- 引入datasource配置文件 -->
  2. <context:property-placeholder location="classpath:datasource.properties" />
  3. <bean id="student" class="edu.njupt.zhb.model.mysql.Student">
  4. <property name="id" value="${student.id}" />
  5. <property name="name" value="${student.name}" />
  6. <property name="course" value="${student.course}" />
  7. <property name="score" value="${student.score}" />
  8. <property name="remarks" value="${student.remarks}" />
  9. </bean>

2.4读取Spring中的Bean函数

  1. /*
  2. * $filename: BeanUtils.java,v $
  3. * $Date: 2013-12-9  $
  4. * Copyright (C) ZhengHaibo, Inc. All rights reserved.
  5. * This software is Made by Zhenghaibo.
  6. */
  7. package edu.njupt.zhb.tools;
  8. import org.apache.struts2.ServletActionContext;
  9. import org.springframework.context.ApplicationContext;
  10. import org.springframework.context.support.FileSystemXmlApplicationContext;
  11. /*
  12. *@author: ZhengHaibo
  13. *web:     http://blog.csdn.net/nuptboyzhb
  14. *mail:    zhb931706659@126.com
  15. *2013-12-9  Nanjing,njupt,China
  16. */
  17. public class BeanUtils {
  18. /**
  19. * 获取Spring中注入的Bean
  20. * @param beanId:id
  21. * @return
  22. */
  23. public static Object getSpringBean(String beanId){
  24. //Spring配置文件的路径
  25. String xmlRealPath = ServletActionContext.getServletContext().getRealPath("/WEB-INF/classes/applicationContext.xml");
  26. ApplicationContext ac = new FileSystemXmlApplicationContext(xmlRealPath);
  27. return ac.getBean(beanId);
  28. }
  29. }

2.5我们可以通过如下方式,获得Spring注入的值

  1. Student stu = (Student)BeanUtils.getSpringBean("student");

2.6用JSONObject工具打印一下stu对象的值

  1. System.out.println(JSONObject.fromObject(stu).toString());

2.7运行结果为:

  1. {"course":"Java","id":"1012010638","name":"Haibo","remarks":"Come from Properties","score":90}
未经允许不得用于商业目的

SSH框架系列:Spring读取配置文件以及获取Spring注入的Bean的更多相关文章

  1. Spring读取配置文件,获取bean的几种方式

    BeanFactory有很多实现类,通常使用 org.springframework.beans.factory.xml.XmlBeanFactory类.但对于大部分J2EE应用而言,推荐使 用App ...

  2. spring读取配置文件内容并自动注入

    添加注解: @PropertySource(value={"classpath:venus.properties"}) 示例: import org.springframework ...

  3. java web路径和spring读取配置文件

    此篇博客缘起:部署java web系统到阿里云服务器(ubuntu14.04)的时候,有以下两个问题 找不到自定义的property配置文件 上传图片的时候找不到路径 开发的时候是在windows上的 ...

  4. Spring 读取配置文件(一)

    注册 @Configuration 标识的类,spring 读取配置文件的时候该类会被自动装载 package cn.com.receive;import org.springframework.be ...

  5. Spring 读取配置文件(二)

    Spring 读取配置文件并调用 bean package cn.com.test.receive; import org.springframework.beans.factory.annotati ...

  6. 【Spring】非Spring IOC容器下获取Spring IOC上下文的环境

    前言 在Spring Web项目中,有些特殊的时候需要在非Spring IOC容器下获取Spring IOC容器的上下文环境,比如获取某个bean. 版本说明 声明POM文件,指定需引入的JAR. & ...

  7. SSH框架系列:Spring配置多个数据源

    分类: [java]2013-12-09 16:59 1247人阅读 评论(0) 收藏 举报 1.问题的引入 对于普通的SSH框架而言,一般配置一个数据源,一个SessionFactory,一个事务管 ...

  8. 关于spring读取配置文件的两种方式

    很多时候我们把需要随时调整的参数需要放在配置文件中单独进行读取,这就是软编码,相对于硬编码,软编码可以避免频繁修改类文件,频繁编译,必要时只需要用文本编辑器打开配置文件更改参数就行.但没有使用框架之前 ...

  9. Spring读取配置文件的几种方式

    import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; imp ...

随机推荐

  1. 解决el-input 触发不了键盘事件

    <el-input v-model="form.loginName" placeholder="账号" @keyup.enter="doLogi ...

  2. ubuntu16.04安装node.js、npm

    ubuntu16.04安装node.js.npm1.请尽量避免在 Ubuntu 上使用 apt-get 来安装 node.js, 如果你已经这么做了,请手动移除: sudo apt-get purge ...

  3. [02]Sort选择排序

    选择排序 算法速度:通过大O表示法表示,O(n),n是操作数,表示算法执行的次数: 数组:是有序的元素序列:若将有限个类型相同的变量的集合命名,那么这个名称为数组名: 链表:是一种物理存储单元上非连续 ...

  4. 02-12Android学习进度报告十二

    今天学习了ListView的焦点问题,基本了解了ListView的使用内容. 首先可以为抢占了控件的组件设置:android:focusable="false" 只需为抢占了Lis ...

  5. C语言-(void*)类型指针

    (void*)类型指针:ANSI新增的:即定义了一个指针,但不指定指向任何类型(即指向抽象的数据类型). 1 通过强制类型转换可将其值赋给另一指针变量 2.1用于动态存储函数的返回型指针 void m ...

  6. if条件语句!

    1.if 单分支语句 if [ 条件语句 ]  then 条件操作fi 例子: [root@localhost ~]# if [ 1 -eq 0 ]                    //如果1等 ...

  7. win10 设置jdk环境变量

    win10环境变量较为特殊 只需要设置JAVA_HOME和PATH,设置后可以通过java -version 和 javac -version 验证查看jdk得版本号和编译版本号 具体如下图所示:

  8. Python开发:Python运算符

    运算符 1.算数运算: 运算符 描述 实例 + 加 - 两个对象相加 a + b 输出结果 30 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10 * 乘 - 两个数相乘或是返 ...

  9. 软件架构,WEB - MVC,MVP,MVVM

    参考 https://www.zhihu.com/question/20148405/answer/107071448 http://www.cnblogs.com/indream/p/3602348 ...

  10. Swift3.0-字符串和字符

    一.简介 Swift中的字符串和字符与OC中在表示上并无大的区别,考虑到字符串在平时的开发工作中属于频繁使用的类型,重点需要掌握的内容是String各种操作函数的写法. 二.Swift与OC的区别 三 ...