`

spring mvc中的@propertysource

 
阅读更多
  在spring mvc中,在配置文件中的东西,可以在java代码中通过注解进行读取了:

@PropertySource  在spring 3.1中开始引入

比如有配置文件
config.properties

mongodb.url=1.2.3.4
mongodb.db=hello

则代码中
 
@PropertySource("classpath:config.properties")
public class AppConfigMongoDB {
 
	//1.2.3.4
	@Value("${mongodb.url}")
	private String mongodbUrl;
 
	//hello
	@Value("${mongodb.db}")
	private String defaultDb;


@Bean
	public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
		return new PropertySourcesPlaceholderConfigurer();
	}



   则mongodbUrl已经是读取出1.2.3.4的值了,而spring提倡用env去读取值


	@Autowired
	private Environment env;

String mongodbUrl = env.getProperty("mongodb.url");
		String defaultDb = env.getProperty("mongodb.db");



   要注意的是,要使用
 
@Bean
public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
return new PropertySourcesPlaceholderConfigurer();
}

才能让spring正确解析出${} 中的值

   在spring 3.2中,允许支持多个properties了,

@Configuration
	@PropertySource({
		"classpath:config.properties",
		"classpath:db.properties" //如果是相同的key,则最后一个起作用
	})
	public class AppConfig {
		@Autowired
		Environment env;
	}



  spring 4.1中,支持@PropertySources
@Configuration
	@PropertySources({
		@PropertySource("classpath:config.properties"),
		@PropertySource("classpath:db.properties")
	})
	public class AppConfig {
		//...
	}

 
  在spring 4.2中,
  
@Configuration
	@PropertySource("classpath:missing.properties")
	public class AppConfig {
		//...
	}


   如果发现missing.properties不存在,则抛出异常
,也可以使用ignoreResourceNotFound=true去忽略
  @Configuration
@PropertySource(value="classpath:missing.properties", ignoreResourceNotFound=true)
public class AppConfig {
//...
}
 
  
4
0
分享到:
评论

相关推荐

    springMVC rest风格视图解析

    在现代Web应用开发中,Spring MVC作为Java领域最流行的MVC框架之一,为开发者提供了强大的功能,包括构建RESTful API。REST(Representational State Transfer)风格的架构设计是Web服务的一种理想模式,它强调资源...

    Spring&Mybatis&SpringMVC总结笔记-最全最基础.pdf

    Spring全家桶中常见的注解包括@Controller、@RestController、@Service、@Repository、@Component、@Configuration、@Resource、@Bean、@Value、@PropertySource、@ResponseBody、@RequestMapping、@SpringBoot...

    Springboot学习笔记大全.docx

    对于属性配置,Spring Boot支持使用`@PropertySource`来加载`.properties`文件,实现外部化配置。这样,我们可以将敏感或环境相关的设置放在外部文件中,而不是硬编码在代码里。加载属性文件后,可以使用`@Value`...

    29 Spring MVC之类型转换Converter慕课专栏1

    在Spring MVC中,类型转换是将用户输入的数据(通常是字符串)转换为模型对象中的预期类型。在早期版本中,我们依赖于`PropertyEditor`来完成这个任务,它只能处理从`String`到其他类型的转换。然而,随着Spring的...

    springboot使用教程

    * 使用 `@PropertySource` 注解:在配置类中使用 `@PropertySource` 注解,Spring Boot 将自动将配置文件绑定到应用程序中。 * 使用 `@Value` 注解:在需要使用的类中添加 `@Value` 注解,Spring Boot 将自动将配置...

    Maven+Sprint MVC简单入门例子

    2. **配置 Spring MVC**:在 Spring 配置文件(如 `servlet-context.xml`)中启用 Spring MVC 并配置 Controller: ```xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi=...

    Spring、mybatis、SpringMVC

    使用外部属性文件需要创建资源文件并引入外部属性文件,使用 @PropertySource 获取外部属性文件中的变量值。 Spring Boot 需要创建 Spring 项目,并选择依赖项,例如 MyBatis Framework 和 MySQL Driver。使用 @...

    SpringMVC+Hibernate用到的jar包

    在Java Web开发中,Spring MVC和Hibernate是两个非常重要的框架,它们分别负责处理应用程序的模型-视图-控制器(MVC)架构和对象关系映射(ORM)。Spring MVC提供了强大的控制层,使得开发者能够轻松地处理HTTP请求...

    Spring MVC Mybatis多数据源的使用实例解析

    在Spring MVC和Mybatis的项目中,多数据源的配置通常用于处理来自不同来源的数据,比如本例中项目需要从其他网站获取数据。这种需求在项目开发过程中并不罕见,特别是在需要集成多个系统的场景下。下面我们将详细...

    对spring做java注解扩展

    `@Import`可以导入其他配置类,`@PropertySource`加载属性文件,`@Value`注入属性值。 通过上述方式,我们可以看到Spring框架如何通过Java注解极大地简化了配置和编程模型。在实际项目中,理解并熟练掌握这些注解的...

    getting-started-springmvc:在Spring MVC框架中使用Twilio的简介

    最好将其存储在环境变量或安全的配置文件中,并使用 Spring 的 PropertySource 或其他安全机制来访问它们。 **集成测试** Spring 提供了优秀的测试支持,包括模拟 HTTP 请求和测试控制器。对于 Twilio 相关的测试...

    source of springdemo

    通过对源码的分析,开发者可以深入理解 Spring 如何处理依赖注入、AOP、MVC、数据访问、容器管理和任务调度等问题,从而在实际项目中更加熟练地运用 Spring。对于初学者来说,这是一个很好的学习起点;对于有经验的...

    spring注解大全整理.docx

    * @PropertySource:指定文件地址,提供了一种方便的、声明性的机制,用于向 Spring 的环境添加 PropertySource * @PostConstruct:标注在方法上,该方法在构造函数执行完成之后执行 * @PreDestroy:标注在方法上,...

    Spring3.2(Spring-Framework-Reference 3.2)

    Spring Framework 3.1版本在缓存抽象、BeanDefinition Profiles、环境抽象、PropertySource抽象等方面带来了新的功能和增强。这包括对Hibernate 4.x的支持和测试上下文框架支持配置类等改进。 由于文档内容是OCR...

    详解Spring MVC自动为对象注入枚举类型

    在 Spring MVC 框架中,为对象自动注入枚举类型是一项非常有用的功能。然而,默认情况下,Spring MVC 只能自动转换基本数据类型,枚举类型需要特殊处理。在本篇文章中,我们将详解如何使用 Spring MVC 自动为对象...

    Spring注解

    2. `@Value`:注入配置属性值,可以是硬编码的值或来自PropertySource的值。 3. `@EnableXXX`:开启特定功能,如`@EnableWebMvc`开启Spring MVC功能,`@EnableAspectJAutoProxy`启用基于AspectJ的AOP。 4. `@...

    spring官方文档pdf

    - Spring 3.1版本中新增了缓存抽象、Bean定义概要、环境抽象和PropertySource抽象。 - 支持Hibernate 4.x版本,增强了与Hibernate的集成能力。 - 测试框架改进,增强了对@configuration类和bean定义概要文件的...

    Spring项目里将SQL语句写在.sql文件中的方法

    Spring框架中的`@PropertySource`注解允许我们指定一个自定义的`PropertySourceFactory`。因此,我们可以在`AppConfig`类中使用如下注解来加载.sql文件: ```java @PropertySource(value = "classpath:sql/queries....

Global site tag (gtag.js) - Google Analytics