注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

让一切都逝去吧

排骨炖泥菜/猪肝炒苹果/鱼籽狗肉汤/狗头薏米汤

 
 
 

日志

 
 

让jsp页面直接使用properties配置  

2013-12-12 10:12:49|  分类: web |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
      spring可以直接配置properties文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation="http://www.springframework.org/schema/beans   
            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
            http://www.springframework.org/schema/context  
            http://www.springframework.org/schema/context/spring-context-3.0.xsd
            http://www.springframework.org/schema/util 
            http://www.springframework.org/schema/util/spring-util-3.0.xsd">
    ...
    
    <bean class="com.web.spring.other.AppConfig"/>
    <context:property-placeholder location="classpath:jdbc.properties" />
    <util:properties id="jdbcProperties" location="classpath:jdbc.properties"/>
</beans>
像上面,可以用<context:property-placeholder/>或<util:properties/>,placeholder更常见的写法是
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
          p:location="classpath:jdbc.properties" />
在java上使用
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;

@Configuration
@ImportResource("classpath*:spring/spring-properties.xml")
public class AppConfig {
    private @Value("${jdbc.driverClassName}") String driverClassName;
    @Bean(initMethod = "init")
    public void jdbc(){
        ...;
        jdbc.setDriverClassName(driverClassName);
        ...;
    }

}
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class AppConfig {
    private @Value("#{jdbcProperties.driverClassName}") String driverClassName;
    //private @Value("#{jdbcProperties['jdbc.driverClassName']}") String driverClassName;
    @Bean(initMethod = "init")
    public void jdbc(){
        ...;
        jdbc.setDriverClassName(driverClassName);
        ...;
    }
}

      这样是在java中使用,在jsp中使用还需要做些事情。使用org.springframework.web.servlet.handler.HandlerInterceptorAdapter,将配置结果放到ServletContext中。ServletContext介绍:
http://blog.csdn.net/bryanliu1982/article/details/5214899
ServletContext,是一个全局的储存信息的空间,服务器开始,其就存在,服务器关闭,其才释放。request,一个用户可有多个;session,一个用户一个;而servletContext,所有用户共用一个。所以,为了节省空间,提高效率,ServletContext中,要放必须的、重要的、所有用户需要共享的线程又是安全的一些信息。
在自定义的HandlerInterceptorAdapter子类中,
@PostConstruct
public void init() {
...
servletContext.setAttribute("siteConfig", siteConfig);
...
}
然后在spring配置文件中定义HandlerInterceptorAdapter子类就可以了。
  评论这张
 
阅读(855)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017