Я не понимаю, как мне указать источник данных в context.xml:
Итак:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
type="javax.sql.DataSource"
name="jdbc/dbname"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/dbname"
username="java"
password="d$7hF_r!9Y"
maxActive="100" maxIdle="30" maxWait="10000"
/>
</Context>
И в web.xml
:
<resource-env-ref>
<resource-env-ref-name>jdbc/dbname<resource-env-ref-name>
<resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
</resource-env-ref>
См. Также:
1: небезопасно помещать пароль базы данных в context.xml, который могут просматривать все;
Он не доступен для просмотра веб-пользователями.Его могут просматривать только те serveradmins, которым все равно нужно знать о них.
2: как мне поддерживать два разных источника данных для режима производства и разработки?
Определите два отдельных <Resource>
, каждое из которых имеет свое имя, и переключите режим dev / prod с помощью какого-либо параметра в web.xml
или файле свойств, чтобы вы могли динамически получать один или другой источник данных.Например,
<context-param>
<param-name>dev</param-name>
<param-value>true</param-value>
</context-param>
с
boolean dev = Boolean.valueOf(getServletContext().getInitParameter("dev"));
if (dev) {
dataSource = getDataSource("jdbc/devdb");
} else {
dataSource = getDataSource("jdbc/proddb");
}