我有一个示例弹簧启动应用程序。我正在使用PostgreSQL DB。我是春天,春天启动等世界的新手
示例应用程序执行CRUD操作。我使用的是Java8和intelliJ IDEA。
我的application.properties包含以下内容: -
spring.profiles.active=local
虽然我在application-local.properties中有以下内容: -
spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=postgres123
spring.datasource.initial-size=5
spring.datasource.max-active=10
spring.datasource.max-idle=5
spring.datasource.min-idle=2
很明显,我的application.properties也有一些连接池。
我的项目结构恰好如下: -
从项目结构中可以看出,我有一个模型文件夹,当然包含employee表的类。 我有一个DAO,它有一个由处理员工相关数据的方法组成的类。 我有一个服务层,由EmployeeSerive类组成。它有
@Autowired
EmployeeDao employeeDao;
因此DAO方法在服务中实现。
我需要移动我在application.properties
中的任何内容我认为最好的方法是以编程方式配置数据源: -
我的Application.java类看起来像这样: -
@SpringBootApplication
@PropertySource("application-${spring.profiles.active}.properties")
public class Application implements CommandLineRunner {
@Autowired
DataSource dataSource;
private static final Logger logger =
LoggerFactory.getLogger(Application.class);
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
logger.info("-------Message at INFO level from Application.main()-------
");
}
@Override
public void run(String... args) throws Exception {
logger.info("-------Message at INFO level from Application.run()-------
");
logger.info(String.valueOf(dataSource));
}
}
为了配置bean,我应该在Application.java类中引入类似下面的内容: -
@Bean
public DataSource dataSource() {
return DataSourceBuilder
.create()
.username("")
.password("")
.url("")
.driverClassName("")
.build();
}
在上面的代码片段中,我将传递application.properties文件中可用的任何内容。
我关注以下链接: -
Configure DataSource programmatically in Spring Boot
我是否需要在我的应用程序中引入其他类,可能在DAO中使用上述内容。
或者只是介绍上述内容就足够了。 我应该怎么做连接池的东西?
提前致谢!