<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" /><!-- mysql驱动类名 -->
<property name="initialSize" value="20" /><!-- 连接池启动时的初始值 -->
<property name="maxActive" value="20" /><!-- 连接池的最大值 -->
<property name="maxIdle" value="10" /><!-- 允许最大空闲值 -->
<property name="minIdle" value="10" /><!-- 允许最小空闲值 -->
<property name="timeBetweenEvictionRunsMillis" value="90000" /><!-- 失效检查线程运行时间间隔,要小于MySQL的'wait_timeout'时间 -->
<property name="testOnBorrow" value="false" />
<property name="testWhileIdle" value="true" />
<property name="validationQuery" value="select 5" /><!-- 检查连接有效性的SQL语句 -->
</bean>
<bean id="jdbc" class="com.parma.electric.core.db.Jdbc">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 数据库用户名 -->
<bean id="jdbc.user_name" class="java.lang.String">
<constructor-arg value="root" />
</bean>
<!-- 数据库用户密码 -->
<bean id="jdbc.password" class="java.lang.String">
<constructor-arg value="admin" />
</bean>
<!-- 数据库IP -->
<bean id="jdbc.url.ip" class="java.lang.String">
<constructor-arg value="127.0.0.1" />
</bean>
<!-- 数据库端口 -->
<bean id="jdbc.url.port" class="java.lang.Integer">
<constructor-arg value="3306" />
</bean>
<!-- 数据库名称 -->
<bean id="jdbc.url.databasename" class="java.lang.String">
<constructor-arg value="electric" />
</bean>
<bean id="jdbc.entity_scan_package" class="java.lang.String">
<constructor-arg value="com.parma.electric.core.db.model" />
</bean>
<bean id="jdbc.page_size" class="java.lang.Integer">
<constructor-arg value="500" />
</bean>
</beans>
@Autowired
@Qualifier("jdbc.user_name")
protected String userName;
@Autowired
@Qualifier("jdbc.password")
protected String password;
@Autowired
@Qualifier("jdbc.url.ip")
protected String urlIp;
@Autowired
@Qualifier("jdbc.url.port")
protected Integer urlPort;
@Autowired
@Qualifier("jdbc.url.databasename")
protected String urlDatabasename;
@Autowired
@Qualifier("jdbc.entity_scan_package")
protected String packageScan;
@Autowired
@Qualifier("jdbc.page_size")
public Integer PAGE_SIZE = 500;
@PostConstruct
public void init() {
BasicDataSource dataSource = (BasicDataSource)getDataSource();
dataSource.setUsername(userName);
dataSource.setPassword(password);
String mysqlUrl = getMysqlUrl(urlIp, urlPort, urlDatabasename);
LOGGER.info("jdbc url={}", mysqlUrl);
dataSource.setUrl(mysqlUrl);
tableScan(packageScan);
for (Entry<Class<?>, TableInfo> entry : TABLE_INFO_MAPS.entrySet()) {
LOGGER.info("Table:{}, Columns:{}", entry.getValue().tableName, entry.getValue().buildDbColumns());
}
}
通过@Autowired和@Qualifier实现xml对应的值注入,防止@Autowired注入时,存在多个相同的bean,从而报create Bean Exception的错误。
@PostConstruct服务器一启动就会加载该方法。
程序猿学社
认证博客专家
Java
Spring Boot
公众号程序猿学社,关注社长,跟着社长一起学习github文章系统整理https://github.com/ITfqyd/cxyxs