你好,我最近的一个项目中希望在Spring MVC框架下利用JFinal的数据库操作功能。在XML中我成功配置了数据源,但是对JFinal进行数据库初始化操作的时候出现Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Config already exists: main 错误,请问是什么原因?具体代码和XML配置如下:
@Component public class ActiveRecordConfig{ // 测试所用jfinal model @Autowired private DruidDataSource DSTestFilght; @Bean(initMethod="start", destroyMethod="stop") public ActiveRecordPlugin init() { // 加载FRAMS数据库内容 ActiveRecordPlugin arpFRAMS = new ActiveRecordPlugin(DSTestFilght); arpFRAMS.setDialect(new SqlServerDialect()); arpFRAMS.addMapping("RawFileInfo", "OF_ID", RawFileInfoModel.class); return arpFRAMS; } } <bean id="DSTestFilght" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <!-- 基本属性 url、user、password --> <property name="url" value="${FRAMS.url}" /> <property name="username" value="${FRAMS.username}" /> <property name="password" value="${FRAMS.password}" /> <!-- 配置初始化大小、最小、最大 --> <property name="initialSize" value="1" /> <property name="minIdle" value="1" /> <property name="maxActive" value="20" /> <!-- 配置获取连接等待超时的时间 --> <property name="maxWait" value="60000" /> <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --> <property name="timeBetweenEvictionRunsMillis" value="60000" /> <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --> <property name="minEvictableIdleTimeMillis" value="300000" /> <property name="validationQuery" value="SELECT 'x'" /> <property name="testWhileIdle" value="true" /> <property name="testOnBorrow" value="false" /> <property name="testOnReturn" value="false" /> <!-- 打开PSCache,并且指定每个连接上PSCache的大小 --> <property name="poolPreparedStatements" value="true" /> <property name="maxPoolPreparedStatementPerConnectionSize" value="20" /> <!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 --> <property name="filters" value="stat" /> </bean>
项目:JFinal
其他地方会不会也配置了默认名称为main的recordplugin呢?
试试ActiveRecordPlugin arpFRAMS = new ActiveRecordPlugin("这里添加一个名称,不过感觉解决不了根本问题",DSTestFilght);