【Spring 实践篇一】spring集成beetlSql
这几天乐农的项目又转接到了我们的手上,因为项目太多,真心是感觉哪里需要哪里搬啊,不过这其中确实收获很多。
感觉好久都没接触spring了,全新全意享受在SpringBoot配置好的世界中,难以自拔。
乐农目前使用的框架是springMVC+spring+mybatis.上次优化把简单的web项目变成了maven集成的项目,这次因为已经习惯了beetlSQL的高效率开发,所以决定在spring中集成beetlSQL,提升开发效率。
在SpringBoot中如何集成beetlSQL,见如下链接:
springboot集成beetlSQL
beetlSQL5分钟搭建:
搭建
本篇则重点针对spring堆beetlSQL进行一下配置:
1)maven依赖
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetlsql</artifactId>
<version>2.10.27</version>
</dependency>
2)通过spring配置文件集成beetlSQL
<bean id="sqlManagerFactoryBean" class="org.beetl.sql.ext.spring4.SqlManagerFactoryBean">
<!--mysql data source-->
<property name="cs" >
<bean class="org.beetl.sql.ext.spring4.BeetlSqlDataSource">
<property name="masterSource" ref="da"></property>
</bean>
</property>
<!--格式-->
<property name="dbStyle">
<bean class="org.beetl.sql.core.db.MySqlStyle"/>
</property>
<!--sql文件路径-->
<property name="sqlLoader">
<bean class="org.beetl.sql.core.ClasspathLoader">
<property name="sqlRoot" value="/sql"></property>
</bean>
</property>
<!--开启驼峰-->
<property name="nc">
<bean class="org.beetl.sql.core.UnderlinedNameConversion"/>
</property>
<!--创建一个SQLManager,DebugInterceptor 不是必须的,但可以通过它查看sql执行情况-->
<property name="interceptors">
<list>
<bean class="org.beetl.sql.ext.DebugInterceptor"></bean>
</list>
</property>
</bean>
以上两步其实beetlSQL已经完工,但是此刻是不能运行的,因为类名查找不到啊。错误如下:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.lenongshe.dao.TstMemberDao' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
截图如下:
路径找不到,所以使用spring,相比SpringBoot而言,这些路径什么的都得自己配置了。
3)扫描配置
<!--扫描配置,根据配置的信息进行扫描-->
<bean name="beetlSqlScannerConfigurer" class="org.beetl.sql.ext.spring4.BeetlSqlScannerConfigurer">
<!-- 哪些类可以自动注入 -->
<property name="basePackage" value="com.lenongshe.dao"/>
<!-- 通过类后缀 来自动注入Dao -->
<property name="daoSuffix" value="Dao"/>
<property name="sqlManagerFactoryBeanName" value="sqlManagerFactoryBean"/>
</bean>
类注入,然后再启动,则问题得到解决。
4)借用beetlSQL API中 template查询进行测试
service代码:
public TstMerchants getMerchants(){
TstMerchants tstMerchants =new TstMerchants();
tstMerchants.setMerchantsId(1);
return tstMerchantsDao.templateOne(tstMerchants);
}
测试完工,应用正常。
相关链接:
【Spring 基础篇 annotation+aspectj实现AOP】Spring 基础篇
【Spring 基础篇 属性注入与属性编辑器】Spring 基础篇
【Spring 基础篇 IoC容器的两种注入方式】Spring 基础篇
【Spring 为什么使用Spring?】Spring 基础篇