这是我的基本 DAO 实现类:
@Repository
public class MeetingDaoImpl implements MeetingDao {
@Autowired
JdbcTemplate jdbcTemplate;
public boolean insertNewMeeting(String initials, String meetingId, int numYears) {
int numRowsAffected = jdbcTemplate.update(SQLConstants.INSERT_NEW_MEETING,
new Object[] {initials.toLowerCase(), meetingId, numYears});
return numRowsAffected > 0;
}
}
Run Code Online (Sandbox Code Playgroud)
该jdbcTemplate自动读取spring.datasource从我的属性application.properties文件,这是伟大的,但它包含了我的DB密码这是我不想犯。相反,我想从本地server.properties文件中读取它,而不是从 Java 类中轻松读取。
有没有办法jdbcTemplate用Java配置?我见过多个使用 bean 和 XML 的示例,但没有使用 Java。
Just declare a JdbcTemplate bean:
@Bean
JdbcTemplate jdbcTemplate() throws IllegalAccessException, InvocationTargetException, InstantiationException {
// extract this 4 parameters using your own logic
final String driverClassName = "org.h2.Driver";
final String jdbcUrl = "jdbc:h2:mem:test";
final String username = "sa";
final String password = "";
// Build dataSource manually:
final Class<?> driverClass = ClassUtils.resolveClassName(driverClassName, this.getClass().getClassLoader());
final Driver driver = (Driver) ClassUtils.getConstructorIfAvailable(driverClass).newInstance();
final DataSource dataSource = new SimpleDriverDataSource(driver, jdbcUrl, username, password);
// or using DataSourceBuilder:
final DataSource dataSource = DataSourceBuilder.create().driverClassName(driverClassName).url(jdbcUrl).username(username).password(password).build();
// and make the jdbcTemplate
return new JdbcTemplate(dataSource);
}
Run Code Online (Sandbox Code Playgroud)
Another way is not to setup datasource parameters in your application.properties file, but to declare it on runtime instead. When you're running your app you can override any properties defined within application.properties or define a new ones.
For example:
java -jar my-spring-boot-app.jar --spring.datasource.url=jdbc:h2:mem:test --spring.datasource.username=sa --spring.datasource.password=secret
The more sophisticated way is to use spring-cloud-config-server or Consul for managing your settings.
| 归档时间: |
|
| 查看次数: |
11887 次 |
| 最近记录: |