分类: 【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. 控制面保护(CPPr)

    除了CoPP外,管理员还可以通过使用控制面保护(Control Plane Protection,CPPr)机制抵御针对控制面的攻击,从本质上讲,CPPr属于CoPP的扩展,在CPPr中控制面接口被划 ...

  2. java里自定义分页查询的尝试

    public String list(){ try { LoginUser loginUser = getLoginUser();//获取当前登录用户 if(curpage<=0){ curpa ...

  3. 【转】jenkins_pipeline语法详解

    pipeline 是一套运行于jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化. pipeline 是jenkins2.X 最核 ...

  4. 启动named服务报错!

    安装及配置bind服务程序: yum -y install bind 三个关键文件: 主配置文件(/etc/named.conf) 区域配置文件(/etc/named.rfc1912.zones) 数 ...

  5. 关于编译QT官方的MQTT库.

    先放一位博主的资料,参阅了其中资料,表示感谢: https://www.cnblogs.com/yexiaopeng/p/8542894.html ########################## ...

  6. 「SDOI2009」Bill的挑战

    「SDOI2009」Bill的挑战 传送门 状压 \(\text{DP}\) 瞄一眼数据范围 \(N\le15\),考虑状压. 设 \(f[i][j]\) 表示在所有串中匹配到第 \(i\) 位字符且 ...

  7. if 条件的 true / false 及 select 的值

    if 条件的 true / false 任何不是 false, undefined, null, 0, NaN 的值,或一个空字符串('')在作为条件语句进行测试时实际返回true,因此您可以简单地使 ...

  8. 操作系统OS,Python - 协程(Coroutine)

    留坑 参考: https://en.wikipedia.org/wiki/Coroutine https://zh.wikipedia.org/wiki/%E5%8D%8F%E7%A8%8B http ...

  9. VB.NET中Sub和Function的区别

    function是函数,sub是子程序,都可以传递参数,但函数有返回值,子程序没有 function 可以用自身名字返回一个值,sub 需定义别的变量,用传址方式传回值. Sub 过程与Functio ...

  10. 时间选择器UIDatePicker的使用

    UIDatePicker的介绍 UIDatePicker这个类的对象让用户可以在多个车轮上选择日期和时间.iPhone手机上的‘时钟’应用程序中的时间与闹铃中便使用了该控件.使用这个控件时,如果你能配 ...