Spring多配置文件与国际化,使用资源文件
Spring多配置文件与国际化,使用资源文件
蜡笔小小小新 发表于3年前
Spring多配置文件与国际化,使用资源文件
  • 发表于 3年前
  • 阅读 29
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: 这是一个Spring 多配置文件与国际化的示例。 这是一个Spring使用资源文件的实例。
package exm.spring.bean;

public class Student {
	
	private String id;
	
	private String name;
	
	private String sex;
	
	private String grade;

	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}

	public Student(String id, String name, String sex, String grade) {
		super();
		this.id = id;
		this.name = name;
		this.sex = sex;
		this.grade = grade;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public String getGrade() {
		return grade;
	}

	public void setGrade(String grade) {
		this.grade = grade;
	}

	@Override
	public String toString() {
		return "Student [id=" + id + ", name=" + name + ", sex=" + sex
				+ ", grade=" + grade + "]";
	}

}


package exm.spring.bean;

public class Screen {
	
	public Screen(){}
	
	public void print(Student student)
	{
		System.out.println(student.getId()+" "+
				student.getName()+" "+student.getSex()+" "+student.getGrade());
	}

}


package exm.spring.test;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Locale;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.Resource;

import exm.spring.bean.Screen;
import exm.spring.bean.Student;

public class Test {
	
	@org.junit.Test
	public void test()
	{
		/**
		 * Spring加载多个配置文件
		 */
		ApplicationContext ac = new ClassPathXmlApplicationContext("beans1.xml","beans2.xml");
		
		Student student = ac.getBean("student", Student.class);
		
		Screen screen = ac.getBean("screen",Screen.class);
		
		screen.print(student);
		
		/**
		 * 让spring从指定路径加载资源
		 * 1、classpath:从类加载路径加载
		 * 2、ftp:			从网络加载,基于FTP协议
		 * 3、http:			从网络加载,基于HTTP协议
		 */
		try
		{
		        //message.txt放在在src文件夹下
			Resource resource = ac.getResource("classpath:message.txt");
			
			BufferedReader br = 
					new BufferedReader(new InputStreamReader(resource.getInputStream()));
			
			String line = null;
			
			while((line = br.readLine()) != null)
			{
				System.out.println("---------"+line+"----------");
			}
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		
		/**
		 * 使用国际化资源文件
		 * 该方法的三个参数分别是:
		 * 1、对应资源文件的key
		 * 2、对应的占位符
		 * 3、使用的locale,如果要使用用户操作系统的locale,则Locale.getDefault()
		 */
		System.out.println(ac.getMessage("hello", new String[]{student.getName()}, Locale.CHINA));
		
		System.out.println(ac.getMessage("welcome", new String[]{student.getName()}, Locale.US));
	}

}

<!-- 配置文件1 -->
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
        
        <bean id="screen" class="exm.spring.bean.Screen">
        </bean>
        
        <!-- 这个bean负责加载国际化资源文件 -->
        <bean id="messageResource" class="org.springframework.context.support.ResourceBundleMessageSource">
        <!-- 相当于调用方法:setBasenames(String... basenames) -->
        	<property name="basenames">
        		<list>
        			<value>message</value>
        		</list>
        	</property>
        </bean>
        
</beans>

<!-- 配置文件2 -->
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="student" class="exm.spring.bean.Student">
    	<constructor-arg name="id" value="11303080423"/>
    	<constructor-arg name="name" value="林金智"/>
    	<constructor-arg name="sex" value="男"/>
    	<constructor-arg name="grade" value="384"/>
    </bean>

</beans>


共有 人打赏支持
粉丝 29
博文 112
码字总数 79661
×
蜡笔小小小新
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: