日期:2014-05-18  浏览次数:20729 次

spring mvc properties 配置问题



@Controller
@RequestMapping("/module/login")
public class LoginController {
 @Autowired
private Properties applicationProps;
 

/**
 * 用户登录 
 
 * @throws Exception
 */
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(HttpServletRequest request, Model model) throws Exception {
//这里面可以取到  
 String keywordPath = applicationProps.getProperty("keyword.filepath");

 .....................
 .....................
 }

 }
在下面的类中就取不到。

  @Component
public class Constants {
 
@Autowired
private static Properties applicationProps;

public static String _DBUSER;// 数据库用户
static {
                 //这里面就不到! 
       _DBUSER=applicationProps.getProperty("jdbc.user");

}
 
}


Properties 在Controller 中可以取到,为什么在普通的类中取不到呢? 
我想在Constants 中获取  Property 中的jdbc.user的值,如何获取呢?
spring?mvc?property

------解决方案--------------------
需要指定搜索范围后(比如使用context:component-scan标签) 后,spring才会去按package检查类的annotation
controller是在相关配置中指定了搜索范围了。
------解决方案--------------------
如果是在xml中声明了该bean 也需要配置 <context:annotation-config />才能开启annotation检查。