将原生Spring项目中某些配置文件中的易变内容参数化-LMLPHP

一:配置文件参数化 

1:配置文件参数化概念

        所谓的配置文件参数化就是把spring当中常用的常修改的字符串配置到配置文件当中,spring当中的配置文件是不是有哪些经常修改的字符串,为啥要转移到一个小的配置文件当中,这个小的配置文件是什么配置文件?

        Spring的配置文件当中存在那些经常修改的字符串吗?

        比方说阿里巴巴提供的连接池的配置当中需要提供四个属性,这四个属性是获取链接的必不可少的东西。驱动信息,账户和密码都有可能要变,所以需要写在配置文件当中,所以结论是存在的:以数据库连接相关的参数为代表。
 

将原生Spring项目中某些配置文件中的易变内容参数化-LMLPHP

        字符串充斥在Spring的配置文件当中是不是一个好事?
        这些东西跟Spring的主配置文件放在一块就很累。开发不仅仅考虑一个功能实现的问题还需要考虑一个维护难度的问题

        更小的配置文件用什么
        我们更小的配置文件用的是properties文件,不用xml文件了。

将原生Spring项目中某些配置文件中的易变内容参数化-LMLPHP
        信息转移走之后的配置应该怎么写?
        ${}的含义表示的是这块的内容是需要使用运算得出的,不是el表达式的意思。value这块的值需要通过运算来获得,是需要通过key所对应的key进行填充,配置文件参数化:利于spring配置文件的维护,便于修改。

将原生Spring项目中某些配置文件中的易变内容参数化-LMLPHP


2:配置文件参数化的开发步骤

(一):提供一个小的配置文件

        最好是properteis类型的配置文件,使用这个这个配置文件,主要保证是properteis进行结尾就行,至于是什么开头,放在哪里Spring并不介意

(二):将小配置文件和Spring配置文件整合

        Spring配置文件和小配置文件的整合Spring会自动帮我们把context命名空间引入进来,这是Spring专门为了整合小配置文件做的一个命名空间

        小配置文件放在resource文件下边。对于这个maven项目来讲,main下边有java,还有和他同级的resource文件夹,maven开发的过程中是这样分级的,但是当编译过后,resource里边的文件会放到和com平级的地方看着仿佛是在java里边,编译会把两个目录合二为一,resource下边的文件相当于在java目录的根下边,所以是和com是平级的就对了,在maven项目中target目录代表的事这些项目编译好的结果,class文件夹是存放编译好的文件,class文件夹下com和配置文件是平级的。我们把class这个文件夹叫做类路径也就是我们的classpath,classpath同时也是spring当中配置文件的一个关键字,这个关键字代表的就是类路径,就是对应的class路径这样我们就做好了Spring配置文件和小配置文件的整合

    <context:property-placeholder location="classpath:db.properties"/>
    <bean id="conn" class = "com.pactera.spring.factorybean.ConnectionFactoryBean">
        <property name="driverClassName" value="${jdbc.DriverManager}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="userName" value="jdbc.username"/>
        <property name="password" value="jdbc.password"/>
    </bean>

将原生Spring项目中某些配置文件中的易变内容参数化-LMLPHP

11-30 05:09