這幾天樂農的項目又轉接到了我們的手上,因爲項目太多,真心是感覺哪裏需要哪裏搬啊,不過這其中確實收穫很多。
感覺好久都沒接觸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 基礎篇