Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring4servlet和一个配置文件_Java_Spring - Fatal编程技术网

Java Spring4servlet和一个配置文件

Java Spring4servlet和一个配置文件,java,spring,Java,Spring,我有一个Spring4MVCServlet,它使用JPA和SpringORM连接到数据库。我的applicationContext.xml文件包含以下内容: <util:map id="persistenceUnitConfiguration"> <entry key="javax.persistence.logging.level" value="INFO" /> <entry key="javax.persistence.jdbc.driver"

我有一个Spring4MVCServlet,它使用JPA和SpringORM连接到数据库。我的
applicationContext.xml
文件包含以下内容:

<util:map id="persistenceUnitConfiguration">
    <entry key="javax.persistence.logging.level" value="INFO" />
    <entry key="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
    <entry key="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/DATABASE" />
    <entry key="javax.persistence.jdbc.user" value="USERNAME" />
    <entry key="javax.persistence.jdbc.password" value="PASSWORD" />
    <entry key="eclipselink.weaving" value="false" />
</util:map>

<bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
      id="entityManagerFactory">
    <property name="persistenceUnitName" value="myPersistenceUnit" />
    <property name="jpaVendorAdapter" ref="jpaAdapter" />
    <property name="packagesToScan" value="my.package.entities" />
    <property name="jpaPropertyMap" ref="persistenceUnitConfiguration" />
</bean>

该应用程序打包为WAR。我想以某种方式配置数据库、用户名和密码值,这样我就可以分发WAR,而没有人需要碰它。唯一要做的就是在某处编辑一个配置文件

这样做的最佳方法是什么


我是否可以在启动webapp期间以编程方式设置jpaPropertyMap,并从固定位置的配置文件中读取它?

创建一个类似database.properties的属性文件:

db.user=youruser
db.password=yourpassword
然后在Spring应用程序配置文件中,添加


现在,您可以使用表达式语言语法访问属性:


如果您使用的是注释配置,那么使用

@Component
public class YourBean {
    @Value( "${db.user}" )
    private String dbUser;

    @Value( "${db.password}" )
    private String dbPassword;
}
如果应用到您的案例中,它将是(类似于更多字段)


如果属性文件在类路径之外,请改用
文件:


如果我想指定一个不在类路径上的特定配置文件,比如在
/etc/my/glority/package.conf
中,该怎么办?