<div dir="ltr" style="text-align: justify;">
<div dir="ltr" style="text-align: justify;">
<div dir="ltr" style="text-align: justify;">
<div dir="ltr" style="text-align: justify;">
<div dir="ltr" style="text-align: justify;">
<b style="color: #274e13;">Using properties files by MessageSource in Spring:</b> In previous chapters we will discuss about <a href="https://dineshonjava.com/application-context-in-spring/"><b>ApplicationContext</b></a> and <a href="https://dineshonjava.com/what-is-bean-factory-in-spring/"><b>BeanFactory</b></a>. <a href="https://dineshonjava.com/application-context-in-spring/"><b>ApplicationContext</b></a> has some extra functionalities in Spring Framework which <b>Internatiolization, Messaging, Properties file</b> etc.</p>
<div id="ads-id" align="center"></div>
<p><b>1. Using <i>org.springframework.context.MessageSource</i>:</b><br />
Its using read message in the class files and display message as the output, below given example show how to use properties files with <i>org.springframework.context.MessageSource.</i></p>
</div>
<p><b>myMessage.properties</b></p>
<pre class="highlight">greeting=Hello Dinesh! 
drawing.circle=Circle is Drawn! 
</pre>
<div style="background-color: #f2f9fc; border:1px solid #c9e6f2;border-radius:3px;padding:16px;line-height:1.45;">
<span style="color: red;font-size: x-large;text-align: center;"><b>Popular Tutorials</b></span></p>
<ul style="text-align: left;">
<li><b><a href="https://dineshonjava.com/spring-tutorial/"><em><strong>Spring Tutorial</strong> </em></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-web-mvc-framework-chapter-38/"><strong><em>Spring MVC Web Tutorial </em></strong></a></b></li>
<li><b><a href="https://dineshonjava.com/introduction-to-spring-boot-a-spring-boot-complete-guide/"><strong>Spring Boot Tutorial</strong> </a></b></li>
<li><b><a href="https://dineshonjava.com/spring-security-take-baby-step-to-secure/"><em>Spring Security Tutorial</em></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-aop-tutorial-with-example-aspect-advice-pointcut-joinpoint/"><em>Spring AOP Tutorial</em></a></b></li>
<li><b><a href="https://dineshonjava.com/using-spring-jdbc-framework-chapter-32/"><em>Spring JDBC Tutorial</em></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-hateoas-hypermedia-driven-restful-web-service/"><em><strong>Spring HATEOAS </strong></em></a></b></li>
<li><b><a href="https://dineshonjava.com/microservices-with-spring-boot/"><em><strong>Microservices with Spring Boot</strong></em></a></b></li>
<li><b><a href="https://dineshonjava.com/jax-rs-web-service-tutorial/"><strong><em>REST Webservice</em> </strong></a></b></li>
<li><b><a href="https://dineshonjava.com/core-java-baby-step-to-be-best-java-ian/"><em><strong>Core Java </strong></em></a></b></li>
<li><b><a href="https://dineshonjava.com/hibernate-3-on-baby-steps/"><em><strong>Hibernate Tutorial</strong></em></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-batch-process-with-example/"><strong><em>Spring Batch</em> </strong></a></b></li>
</ul>
</div>
<p> ;</p>
<div style="color: #274e13;">Now to read this properties file in the spring application we have to use the a class name &#8220;<b>org.springframework.context.support.ResourceBundleMessageSource</b>&#8221; this help to pick the properties files into to the application, this define as bean in the spring configuration file(<b>spring.xml</b>). As follows</div>
<p><b>spring.xml</b></p>
<pre class="highlight"><;beans xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:> 
 ; 
<div style="color: #274e13;">Now "<b>messageSource</b>" using as property of the bean circle as follows:</div> 
<b>Circle.java</b> 
<pre class="highlight">package com.dineshonjava.sdnext.tutorial.property; 
 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.context.MessageSource; 
import org.springframework.stereotype.Component; 
 
/** 
 * @author Dinesh Rajput 
 * 
 */ 
@Component 
public class Circle 
{ 
 @Autowired 
 private Point center; 
 @Autowired 
 private MessageSource messageSource; 
 
 /** 
 * @param messageSource the messageSource to set 
 */ 
 public void setMessageSource(MessageSource messageSource) 
 { 
 this.messageSource = messageSource; 
 } 
 
 /** 
 * @param center the center to set 
 */ 
 public void setCenter(Point center) 
 { 
 this.center = center; 
 } 
 
 public void draw() 
 { 
System.out.println(this.messageSource.getMessage("drawing.circle", null, "Default Drawing Greeting", null)); 
 } 
} 
</pre>
<p> ;</p>
<div style="color: #7f6000;">In the above class file two property "<b>center</b>" and "<b>messageSource</b>" which autowired with the bean name "<b>circle</b>". We get the message of the properties file in the<b> draw()</b> method by using following method</div>
<p> ;</p>
<div style="color: #274e13;"><b>org.springframework.context.MessageSource.getMessage(String arg0, Object[] arg1, String arg2, Locale arg3)</b></div>
<p> ;</p>
<div style="color: #274e13;">where <b>String arg0</b> give the key of properties file to read its related message.</div>
<div style="color: #274e13;">as our example we are using "<b>drawing.circle</b>" and "<b>greeting</b>" as keys.</div>
<p> ;</p>
<div style="color: #274e13;"><b>Object[] arg1</b> is the array of parameters which are applied to the properties file.</div>
<p><b>Example.</b></p>
<div style="color: #274e13;">drawing.point=Circle: Point is: ({0}, {1})</div>
<div style="color: #274e13;"></div>
<div style="color: #274e13;">Here there are two parameters {0}, {1} passes as</div>
<div style="color: #274e13;"></div>
<div style="color: #274e13;"><b>getMessage("drawing.point", new Object[]{center.getX(), center.getY()}, "Default Drawing Greeting", null)</b></div>
<div style="color: #274e13;"></div>
<div style="color: #274e13;">Here <b>center.getX()</b> is replace with the <b>{0}</b></div>
<div style="color: #274e13;">and <b>center.getY()</b> is replace with the <b>{1}</b></div>
<p><b>Point.java</b></p>
<pre class="highlight">package com.dineshonjava.sdnext.tutorial.property; 
 
/** 
 * @author Dinesh Rajput 
 * 
 */ 
public class Point 
{ 
 private int x; 
 private int y; 
 /** 
 * @return the x 
 */ 
 public int getX() 
 { 
 return x; 
 } 
 /** 
 * @param x the x to set 
 */ 
 public void setX(int x) 
 { 
 this.x = x; 
 } 
 /** 
 * @return the y 
 */ 
 public int getY() 
 { 
 return y; 
 } 
 /** 
 * @param y the y to set 
 */ 
 public void setY(int y) 
 { 
 this.y = y; 
 } 
} 
</pre>
<p> ;</p>
<div style="color: #274e13;">Now run the following class file.</div>
<p><b>DrawingApp.java</b></p>
<pre class="highlight">package com.dineshonjava.sdnext.tutorial.property; 
 
import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 
 
/** 
 * @author Dinesh Rajput 
 * 
 */ 
public class DrawingApp 
{ 
 
 /** 
 * @param args 
 */ 
 public static void main(String[] args) 
 { 
ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); 
System.out.println(context.getMessage("greeting", null, "Default Greeting", null)); 
Circle circle = (Circle)context.getBean("circle"); 
shape.draw(); 
 } 
} 
</pre>
<p> ;</p>
<div style="color: #274e13;"><b>If every thing ok then we get the following output:</b></div>
<div style="background-color: #ff99cc; border-width: thin; border: solid;">
<div style="color: blue;"><b>Output:</b></div>
<div style="color: red;">Jul 18, 2012 9:04:33 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh</div>
<div style="color: red;">INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@758fc9: startup date [Wed Jul 18 21:04:33 IST 2012]; root of context hierarchy</div>
<div style="color: red;">Jul 18, 2012 9:04:33 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions</div>
<div style="color: red;">INFO: Loading XML bean definitions from class path resource [spring.xml]</div>
<div style="color: red;">Jul 18, 2012 9:04:34 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons</div>
<div style="color: red;">INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@1238bd2: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,circle,center,messageSource,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0]; root of factory hierarchy</div>
<p><b>Hello Dinesh!</b><br />
<b>Circle is Drawn!</b></p>
</div>
</div>
<p><b><br />
Using properties file with parameters:</b><br />
<b>myMessage.properties</b></p>
<pre class="highlight">greeting=Hello Dinesh! 
drawing.circle=Circle is Drawn! 
drawing.point=Circle: Point is: ({0}, {1}) 
</pre>
<p> ;</p>
<div style="color: #274e13;">Now make some change in the draw() method of Circle.java file.</div>
<p> ;</p>
<pre class="highlight">public void draw() 
{ 
System.out.println(this.messageSource.getMessage("drawing.circle", null, "Default Drawing Greeting", null)); 
System.out.println(this.messageSource.getMessage("drawing.point", new Object[] {center.getX(), center.getY()}, "Default Drawing Greeting", null)); 
} 
</pre>
<p> ;</p>
<div style="color: #274e13;"><b>After make these change run the main application file then we get the following output:</b></div>
<div style="background-color: #ff99cc; border-width: thin; border: solid;"><b>Hello Dinesh!</b><br />
<b>Circle is Drawn!</b><br />
<b>Circle: Point is: (20, 0)</b></div>
<p><b></b><br />
<b></b></p>
<div class="separator" style="clear: both; text-align: center;"><img title="Using properties files in Spring" src="https://dineshonjava.com/wp-content/uploads/2012/07/properties.jpg" border="0" /></div>
<p><b><br />
</b><br />
<b>2. Using <i>org.springframework.beans.factory.config.PropertyPlaceholderConfigurer</i>:</b></p>
<div style="color: #274e13;">If you need to read properties file in your Spring application all you need is to configure a <b>PropertyPlaceholderConfigurer </b>bean in your application context.</div>
<div style="color: #274e13;">Following example shows how to read property values from a properties file named <b>myMessage.properties</b>. This file needs to be in your classpath so Spring can find it.</div>
<p><b>myMessage.properties</b></p>
<pre class="highlight">X-axis=20 
Y-axis=0 
</pre>
<p><b>spring.xml</b></p>
<pre class="highlight"><;bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" id="placeholderConfig">; 
<;property name="location" value="classpath:myMessage.properties">; 
 
 <;/property>; 
<;/bean>; 
<;bean class="com.dineshonjava.sdnext.tutorial.property.Point" id="center">; 
 <;property name="x" value="${X-axis}">;<;/property>; 
 <;property name="y" value="${Y-axis}">;<;/property>; 
<;/bean>; 
</pre>
<p> ;</p>
<div style="color: #274e13;">Notice the <b>placeholderConfig </b>bean. This is where we are instructing Spring container to load the values from <b>myMessage.properties</b> file. You can name your will whatever you like.</div>
</div>
<div style="background-color: #f2f9fc; border-radius: 3px; border: 1px solid #c9e6f2; line-height: 1.45; padding: 16px;">
<span style="color: red; font-size: x-large; text-align: center;"><b>Spring Related Topics you may like</b></span></p>
<ol style="text-align: left;"><span style="color: #274e13;"></p>
<li><b><a href="https://dineshonjava.com/interview-questions-on-spring/"><span style="color: red;">Spring Interview Questions and Answers</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-aop-interview-questions-and-answers/"><span style="color: red;">Spring AOP Interview Questions and Answers</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-mvc-interview-questions-and-answers/"><span style="color: red;">Spring MVC Interview Questions</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-security-interview-questions-and-answers/"><span style="color: red;">Spring Security Interview Questions and Answers</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-rest-web-services-interview-questions-and-answers/"><span style="color: red;">Spring REST Interview Questions and Answers</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-boot-interview-questions-and-answers/"><span style="color: red;">Spring Boot Interview Questions and Answers</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-boot-microservices-interview-questions-answers/"><span style="color: red;">Spring Boot Microservices Interview Questions and Answers</span></a></b></li>
<li><b><a href="https://dineshonjava.com/dependency-injection-in-spring/"><span style="color: red;">Dependency Injection (DI) in Spring </span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-ioc-container/"><span style="color: red;">Spring IoC Container</span></a></b></li>
<li><b><a href="https://dineshonjava.com/what-is-bean-factory-in-spring/"><span style="color: red;">What is Bean Factory in Spring</span></a></b></li>
<li><b><a href="https://dineshonjava.com/application-context-in-spring/"><span style="color: red;">ApplicationContext in Spring</span></a></b></li>
<li><b><a href="https://dineshonjava.com/bean-autowiring-in-spring/"><span style="color: red;">Bean Autowiring in Spring</span></a></b></li>
<li><b><a href="https://dineshonjava.com/understanding-bean-scopes/"><span style="color: red;">Spring Bean Scopes</span></a></b></li>
<li><b><a href="https://dineshonjava.com/create-custom-bean-scope-in-spring-example/"><span style="color: red;">Create Custom Bean Scope in Spring Example</span></a></b></li>
<li><b><a href="https://dineshonjava.com/using-applicationcontextaware-in-spring/"><span style="color: red;">Using ApplicationContextAware in Spring</span></a></b></li>
<li><b><a href="https://dineshonjava.com/bean-lifecycle-and-callbacks/"><span style="color: red;">Spring Bean Life Cycle and Callbacks</span></a></b></li>
<li><b><a href="https://dineshonjava.com/writing-beanpostprocessor-in-spring/"><span style="color: red;">BeanPostProcessor in Spring</span></a></b></li>
<li><b><a href="https://dineshonjava.com/writing-beanfactorypostprocessor-in/"><span style="color: red;">BeanFactoryPostProcessor in Spring</span></a></b></li>
<li><b><a href="https://dineshonjava.com/annotations-in-spring-and-based/"><span style="color: red;"> Annotations in Spring and Based Configuration</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-jsr-250-annotations/"><span style="color: red;">Spring JSR-250 Annotations</span></a></b></li>
<li><b><a href="https://dineshonjava.com/jsr-330-annotations-in-spring/"><span style="color: red;">JSR 330 Annotations in Spring</span></a></b></li>
<li><b><a href="https://dineshonjava.com/stereotype-annotations-in-spring/"><span style="color: red;">Spring @Component, @Repository, @Service and @Controller Stereotype Annotations</span></a></b></li>
<li><b><a href="https://dineshonjava.com/method-injection-with-spring-using-lookup-method-property/"><span style="color: red;">Method injection with Spring using Lookup method property</span></a></b></li>
<li><b><a href="https://dineshonjava.com/introduction-to-aop-in-spring/"><span style="color: red;">Spring AOP-Introduction to Aspect Oriented Programming</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-aspect-annotation/"><span style="color: red;">@Aspect Annotation in Spring</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-aop-aspectj-before-annotation-advice-example/"><span style="color: red;"> Spring AOP AspectJ @Before Annotation Advice Example<br />
</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-aop-before-advice-example-using-xml-config/"><span style="color: red;"> Spring AOP Before Advice Example using XML Config</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-aop-aspectj-after-annotation-advice-example/"><span style="color: red;"> Spring AOP AspectJ @After Annotation Advice Example</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-aop-after-advice-example-using-xml-config/"><span style="color: red;"> Spring AOP After Advice Example using XML Config</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-aop-aspectj-after-returning-annotation-advice-example/"><span style="color: red;"> Spring AOP AspectJ @AfterReturning Annotation Advice Example</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-aop-after-returning-advice-example-using-xml-config/"><span style="color: red;"> Spring AOP After-Returning Advice Example using XML Config</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-aop-aspectj-after-throwing-annotation-advice-example/"><span style="color: red;"> Spring AOP AspectJ @AfterThrowing Annotation Advice Example</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-aop-after-throwing-advice-example-using-xml-config/"><span style="color: red;"> Spring AOP After Throwing Advice Example using XML Config</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-aop-aspectj-around-annotation-advice-example/"><span style="color: red;"> Spring AOP AspectJ @Around Annotation Advice Example</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-aop-around-advice-example-using-xml-config/"><span style="color: red;"> Spring AOP Around Advice Example using XML Config</span></a></b></li>
<li><b><a href="https://dineshonjava.com/understanding-aop-proxies-chapter-31/"><span style="color: red;">Spring AOP Proxies in Spring</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-aop-transaction-management-in/"><span style="color: red;"> Spring AOP Transaction Management in Hibernate</span></a></b></li>
<li><b><a href="https://dineshonjava.com/transaction-management-in-spring/"><span style="color: red;">Spring Transaction Management</span></a></b></li>
<li><b><a href="https://dineshonjava.com/declarative-transaction-management/"><span style="color: red;">Spring Declarative Transaction Management Example</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-aop-ordering-of-aspects-with-example/"><span style="color: red;">Spring AOP-Ordering of Aspects with Example</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-security-java-based-configuration-with-example/"><span style="color: red;">Spring Security Java Based Configuration with Example</span></a></b></li>
<li><b><a href="https://dineshonjava.com/spring-security-xml-namespace-configuration-example/"><span style="color: red;">Spring Security XML Namespace Configuration Example</span></a></b></li>
<p></span></ol>
</div>
</div>
<p> ;</p>
</div>
<div class="wp-post-navigation"> 
									 <div class="wp-post-navigation-pre"> 
									 <a href="https://dineshonjava.com/spring-component-annotation/">Previous</a> 
									 </div> 
									 <div class="wp-post-navigation-next"> 
									 <a href="https://dineshonjava.com/event-handling-in-spring/">Next</a> 
									 </div> 
									</div>
<script type="text/javascript">
jQuery(document).ready(function($) {
 $.post('https://dineshonjava.com/wp-admin/admin-ajax.php', {action: 'mts_view_count', id: '649'});
});
</script>
Strategy Design Patterns We can easily create a strategy design pattern using lambda. To implement…
Decorator Pattern A decorator pattern allows a user to add new functionality to an existing…
Delegating pattern In software engineering, the delegation pattern is an object-oriented design pattern that allows…
Technology has emerged a lot in the last decade, and now we have artificial intelligence;…
Managing a database is becoming increasingly complex now due to the vast amount of data…
Overview In this article, we will explore Spring Scheduler how we could use it by…