- Reading multiple properties files in spring 3 web MVC
Spring allows us to externalize string literals in its context configuration files into external properties files, in order to separate application specific settings from framework specific configuration. Spring will read all the properties files declared by PropertyPlaceholderConfigurer bean to resolve the placeholders at application’s start up time.
Simple Example
Declare a PropertyPlaceholderConfigurer bean in spring’s application context as follows:
That tells spring to load the properties file name project.properties in the class path. An exception will be thrown if spring could not find specified property file.
The project.properties file should contain the name and value pair for example
Name = xyz
Filepath = C:/Test/Setting.xml
Host = localhost
User = testuser
By default spring look for the properties files in the application directory. So if we specify
Then it will find project.properties file under WEB-INF directory of the application in case of spring MVC application.
We can use prefix classpath: to tell spring load properties file in the application’s classpath. For example:
In the case of spring application the project.properties file should be present in WEB/INF/classes directory or in source directory src in eclipse IDE.
Use the prefix file:/// or file: to load property file from file system.
Spring context load the project.properties file from D:/Applicatin/Config else throws the exception if file is not present in the specified path.
Loading multiple properties files
Spring allows us to specify multiple properties files for the PropertyPlaceholderConfigurer as follows
classpath:/processor.properties
classpath:/datasource.properties
</property
We can add as many as properties file in list as shown above. Spring context will load all the properties files specified in list as shown above at the application start up time.
Loading Properties files values in spring controller
Suppose you have properties file as follows
Name = xyz
Filepath = C:/Test/Setting.xml
Host = localhost
User = testuser
We can use the variable read from properties files in spring controller by declaring @Component annotation in controller class for example:
@Controller
@Component
public class Controller{
@Value(“${Name}”)
String Name;
@Value(“${Filepath }”)
String Filepath;
@Value(“${Host }”)
String Host;
@Value(“${User }”)
String User;
}
The value of properties file automatic assign to declared variable by spring framework we can use these variables inside the application.
Muqtar Ahmed
Helical IT Solutions
Best Open Source Business Intelligence Software Helical Insight is Here
@Controller
@Component
public class Controller{
@Value(“${Name}”)
String Name;
@Value(“${Filepath }”)
String Filepath;
@Value(“${Host }”)
String Host;
@Value(“${User }”)
String User;
}
>>>>>>>>>>>>>>Question>>>>>>>>>>>>>>>.
@Value annotation not found , please suggest me the import package statement for @Value annotation
There is no any solution of this problem,,,,,
Please add the jar file “spring-beans” and add import the following jar in your program..
“import org.springframework.beans.factory.annotation.Value;”