新版本-螞蟻課堂springboot_第1頁(yè)
新版本-螞蟻課堂springboot_第2頁(yè)
新版本-螞蟻課堂springboot_第3頁(yè)
新版本-螞蟻課堂springboot_第4頁(yè)
新版本-螞蟻課堂springboot_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、SpringBoot一、Spring 介紹1.1、SpringBoot 簡(jiǎn)介在您第 1 次接觸和學(xué)習(xí) Spring 框架的時(shí)候,是否因?yàn)槠浞彪s的配置而退卻了?在你第 n 次使用 Spring 框架的時(shí)候,是否覺(jué)得一堆反復(fù)黏貼的配置有一些厭煩?那么您就不妨來(lái)試試使用 Spring Boot 來(lái)讓你更易上手,更簡(jiǎn)單快捷地構(gòu)建Spring 應(yīng)用!Spring Boot 讓的 Spring 應(yīng)用變的更輕量化。比如:你可以僅僅依靠一個(gè) Java 類(lèi)來(lái)運(yùn)行一個(gè) Spring。你也可以打包你的應(yīng)用為 jar 并通過(guò)使用 java -jar 來(lái)運(yùn)行你的 Spring Web 應(yīng)用。Spring Boot 的主

2、要優(yōu)點(diǎn):為所有Spring 開(kāi)發(fā)者更快的入門(mén)開(kāi)箱即用,提供各種默認(rèn)配置來(lái)簡(jiǎn)化項(xiàng)目配置內(nèi)嵌式容器簡(jiǎn)化Web 項(xiàng)目沒(méi)有冗余代碼生成和XML 配置的要求本章主要目標(biāo)完成 Spring Boot 基礎(chǔ)項(xiàng)目的構(gòu)建,并且實(shí)現(xiàn)一個(gè)簡(jiǎn)單的 Http 請(qǐng)求處理,通過(guò)這個(gè)例子對(duì)Spring Boot 有一個(gè)初步的了解,并體驗(yàn)其結(jié)構(gòu)簡(jiǎn)單、開(kāi)發(fā)快速的特性。SpringBoot 是一個(gè)快速開(kāi)發(fā)的框架,能夠快速的整合第框架,簡(jiǎn)化 XML 配置,全部采用注解形式,內(nèi)置 Tomcat 容器,幫助開(kāi)發(fā)者能夠?qū)崿F(xiàn)快速開(kāi)發(fā),SpringBoot 的 Web 組件 默認(rèn)集成的是 SpringMVC 框架。SpringMVC 是控制層

3、。1.2、系統(tǒng)要求:Java1.8 及以上Spring Framework 4.1.5 及以上本文采用 Java 1.8.0_73、Spring Boot 2.0 版本調(diào)試通過(guò)。1.3、SpringBoot 和 SpringMVC 區(qū)別SpringBoot 是一個(gè)快速開(kāi)發(fā)的框架,能夠快速的整合第框架,簡(jiǎn)化 XML 配置,全部采用注解形式,內(nèi)置 Tomcat 容器,幫助開(kāi)發(fā)者能夠?qū)崿F(xiàn)快速開(kāi)發(fā),SpringBoot 的 Web 組件 默認(rèn)集成的是 SpringMVC 框架。SpringMVC 是控制層。1.4、SpringBoot 和 SpringCloud 區(qū)別SpringBoot 是一個(gè)快速開(kāi)

4、發(fā)的框架,能夠快速的整合第框架,簡(jiǎn)化 XML 配置,全部采用注解形式,內(nèi)置 Tomcat 容器,幫助開(kāi)發(fā)者能夠?qū)崿F(xiàn)快速開(kāi)發(fā),SpringBoot 的 Web 組件 默認(rèn)集成的是 SpringMVC 框架。SpringMVC 是控制層。SpringCloud 依賴與 SpringBoot 組件,使用 SpringMVC 編寫(xiě) Http 協(xié)議接口,同時(shí) SpringCloud 是一套完整的微服務(wù)解決框架。1.5 常見(jiàn)錯(cuò)誤EclipseSpringBoot2.0 以上版本,pom 文件報(bào)錯(cuò)解決辦法.apache.maven.archiver.MavenArchiver.getManifest(.ap

5、ache.maven.archiver.MavenArchiveConfiguration).ject.MavenProject,相關(guān): http:/article/1527749194015二、快速入門(mén)2.1、創(chuàng)建一個(gè) Maven 工程名為”springboot-oworld” 類(lèi)型為Jar 工程項(xiàng)目2.2、pom 文件引入依賴2.3、編寫(xiě)oWorld 服務(wù)創(chuàng)建 package 命名為com.itmayiedu.controller(根據(jù)實(shí)際情況修改)創(chuàng)建oController 類(lèi),內(nèi)容如下RestController EnableAutoConfiguration public class

6、oController RequestMap(/o) public String index() return o World;public sic void main(String args) SpringApplication.run(oController.class, args);.springframework.bootspring-boot-startarent2.0.0.RELEASE.springframework.bootspring-boot-starter-webspring-boot-startarent 作用在 pom.xml 中引入 spring-boot-star

7、t-parent,spring的解釋叫什么 soms,它可以提供 dependency management,也就是說(shuō)依賴管理,引入以后在其它 dependency 的時(shí)候就不需要 ver了,后面可以看到。spring-boot-starter-web 作用springweb組件spring-boot-maven-plugin 作用如果要直接 Main 啟動(dòng) spring,那么以下 plugin 必須要添加,否則是無(wú)法啟動(dòng)的。如果使用 maven 的 spring-boot:run 的話是不需要此配置的。(我在測(cè)試的時(shí)候,如果不配置下面的 plugin 也是直接在 Main 中運(yùn)行的。)2.4

8、、RestController在上加上 RestController 表示修飾該 Controller 所有的方法返回 JSON 格式,直接可以編寫(xiě)Restful 接口2.5、EnableAutoConfiguration注解:作用在于讓 Spring Boot 根據(jù)應(yīng)用所的依賴來(lái)對(duì) Spring 框架進(jìn)行自動(dòng)配置這個(gè)注解告訴 Spring Boot 根據(jù)添加的 jar 依賴猜測(cè)你想如何配置 Spring。由于 spring-boot-starter-web添加了 Tomcat 和 Spring MVC,所以 auto-configuration 將假定你正在開(kāi)發(fā)一個(gè)web 應(yīng)用并相應(yīng)地對(duì)Sp

9、ring進(jìn)行設(shè)置。2.6 SpringApplication.run(oController.class, args);標(biāo)識(shí)為啟動(dòng)類(lèi)2.7、SpringBoot 啟動(dòng)方式 1Springboot 默認(rèn)端為 8080啟動(dòng)主程序,打開(kāi)瀏覽器,可以看到頁(yè)面輸出o World2.8、SpringBoot 啟動(dòng)方式 2ComponentScan(basePackages = com.itmayiedu.controller)-控制器掃包范圍ComponentScan(basePackages = com.itmayiedu.controller) EnableAutoConfigurationpubli

10、c class App RestController EnableAutoConfiguration public classoController RequestMap(/o) public String index() return o World;public sic void main(String args) SpringApplication.run(oController.class, args);2.9、SpringBoot 啟動(dòng)方式 3SpringBootApplicationSpringBootApplication 被 Configuration、EnableAutpon

11、entScan 注解所修飾,換言之 Springboot 提供了的注解來(lái)替代以上三個(gè)注解掃包范圍:在啟動(dòng)類(lèi)上加上SpringBootApplication 注解,當(dāng)前包下或者子包下所有的類(lèi)都可以掃到。三、Web 開(kāi)發(fā)3.1、靜態(tài)資源在開(kāi)發(fā)Web 應(yīng)用的時(shí)候,需要大量的 js、css、等靜態(tài)資源。默認(rèn)配置Spring Boot 默認(rèn)提供靜態(tài)資源目錄位置需置于 classpath 下,目錄名需符合如下規(guī)則:/sic/public/resour/META-INF/resour舉例:嘗試可以在 src/main/resour/目錄下創(chuàng)建 sic,在該位置放置一個(gè)文件。啟動(dòng)程序后,。如能顯示,配置成功。

12、3.2、渲染 Web 頁(yè)面渲染 Web 頁(yè)面在之前的示例中,都是通過(guò)RestController 來(lái)處理請(qǐng)求,所以返回的內(nèi)容為 json 對(duì)象。那么如果需要渲染html 頁(yè)面的時(shí)候,要如何實(shí)現(xiàn)呢?模板引擎在動(dòng)態(tài)HTML 實(shí)現(xiàn)上 Spring Boot 依然可以完美勝任,并且提供了多種模板引擎的默認(rèn)配置支持,所以在推薦的模板引擎下,可以很快的上手開(kāi)發(fā)站。Spring Boot 提供了默認(rèn)配置的模板引擎主要有以下幾種:public sic void main(String args) SpringApplication.run(App.class, args);Spring Boot 建議使用這些

13、模板引擎,避免使用 JSP,若一定要使用 JSP 將無(wú)法實(shí)現(xiàn) Spring Boot 的多種特性,具體可見(jiàn)后文:支持JSP 的配置當(dāng)你使用上述模板引擎中的任何一個(gè),它們默認(rèn)的模板配置路徑為:src/main/resour然也可以修改這個(gè)路徑,具體如何修改,可在后續(xù)各模板引擎的配置屬性中查詢并修改。/templates。當(dāng)3.3、使用 Freemarker 模板引擎渲染 web 視圖3.3.1、pom 文件引入:3.3.2、代碼在src/main/resour/創(chuàng)建一個(gè)templates 文件夾,后綴為*.ftl3.3.3、前臺(tái)代碼RequestMap(/index)public String

14、index(Map map) map.put(name,美麗的天使.);return index;.springframework.bootspring-boot-starter-freemarkerThymeleafFreeMarkerVelocityGroovyMustache3.3.4、Freemarker 其他用法RequestMap(/freemarkerIndex)public String index(Map result) result.put(name, yushengjun); result.put(sex, 0);List listResult = new ArrayLi

15、st(); listResult.add(zhangsan); listResult.add(lisi); listResult.add(itmayiedu); result.put(listResult, listResult);return index;首頁(yè)$name男女其他$user$name3.3.5、Freemarker 配置新建perties 文件3.4、使用 JSP 渲染 Web 視圖3.4.1、pom 文件引入以下依賴.springframework.bootspring-boot-startarent2.0.0.RELEASE.springframework.bootspri

16、ng-boot-starter-web.springframework.bootspring-boot-starter-tomcat#FREEMARKER (FreeMarkerAutoConfiguration) #spring.freemarker.allow-request-override=false spring.freemarker.cache=truespring.freemarker.check-templaocation=true spring.freemarker.charset=UTF-8spring.freemarker.content-type=text/htmlsp

17、ring.freemarker.exe-requestributes=false spring.freemarker.exe-ses-attributes=false spring.freemarker.exe-spring-macro-helpers=false #spring.freemarkrefix=#spring.freemarker.reqontextribute= #spring.freemarker.settings.*=spring.freemarker.suffix=.ftlspring.freemarker.templaoadath=classpath:/template

18、s/ #comma-separated list#spring.freemarker.view-names= # whiist of view namest can be resolved3.4.2、在 perties 創(chuàng)建以下配置3.4.3、代碼注意:創(chuàng)建 SpringBoot 整合 JSP,一定要為 war 類(lèi)型,否則會(huì)找不到頁(yè)面.JSP 頁(yè)面存放在 resour/ jsp 不能被到Controllerpublic class IndexController RequestMap(/index) public String index() return index;spring.mvc.v

19、iew.prefix=/WEB-INF/jsp/spring.mvc.view.suffix=.jsp.apache.tomcat.embedtomcat-embed-jasper3.5、全局捕獲異常ExceptionHandler 表示異常四、數(shù)據(jù)4.1、springboot 整合使用 JdbcTemplate4.1.1 pom 文件引入.springframework.bootspring-boot-startarent2.0.0.RELEASEControllerAdvicepublic class GlobalExceptionHandler ExceptionHandler(Runt

20、imeException.class) ResponseBodypublic Map exceptionHandler() Map map = new HashMap(); map.put(errorCode, 101);map.put(errorMsg, 系統(tǒng)錯(cuò)誤!);return map;ControllerAdvice 是 controller 的一個(gè)輔助類(lèi),最常用的就是作為全局異常處理的切面類(lèi)ControllerAdvice 可以指定掃描范圍ControllerAdvice 約定了幾種可行的返回值,如果是直接返回 m類(lèi)的話,需要使用ResponseBody 進(jìn)行 json 轉(zhuǎn)換返回 S

21、tring,表示跳到某個(gè) view返回 mAndView返回 m+ ResponseBody4.1.2 perties 新增配置4.1.3 UserService 類(lèi)Servicepublic claserServiceImpl implements UserService Autowiredprivate JdbcTemplate jdbcTemplate;public void createUser(String name,eger age) jdbcTemplate.update(inserto users values(null,?,?);, name, age);spring.dat

22、asource.url=jdbc:/localhost:3306/test spring.datasource.username=root spring.datasource.password=rootspring.datasource.dri.jdbc.Driver.springframework.bootspring-boot-starter-jdbc-connector-java.springframework.bootspring-boot-starter-testtest.springframework.bootspring-boot-starter-web4.1.4 App 類(lèi)注意

23、: spring-boot-startarent 要在 1.5 以上4.2、springboot 整合使用 mybatis4.2.1、pom 文件引入.springframework.bootspring-boot-startarent2.0.0.RELEASE.springframework.bootspring-boot-starter.springframework.bootspring-boot-starter-testtest.mybatis.spring.bootmybatis-spring-boot-starter1.1.1ponentScan(basePackages = co

24、m.itmayiedu.controller, com.itmayiedu.service )/EnableAutoConfiguration SpringBootApplication public class App public sic void main(String args) SpringApplication.run(App.class, args);4.2.2、配置文件引入4.2.3、Mapper 代碼4.2.4、啟動(dòng)方式ponentScan(basePackages = com.itmayiedu.controller ) MapperScan(com.itmayiedu.m

25、apper)/EnableAutoConfiguration SpringBootApplication public class MybatisApp public sic void main(String args) SpringApplication.run(MybatisApp.class, args);publicerface UserMapper Select(SELECT * FROM USERS WHERE NAME =)User findByName(Param(name) String name);Insert(INSERTO USERS(NAME, AGE) VALUES

26、(, #age)insert(Param(name) String name, Param(age)eger age);spring.datasource.url=jdbc:/localhost:3306/test spring.datasource.username=root spring.datasource.password=rootspring.datasource.dri.jdbc.Driver-connector-java.springframework.bootspring-boot-starter-web4.3、springboot 整合使用 springjpa4.3.1 po

27、m 文件引入依賴4.3.2 創(chuàng)建 User 實(shí)體類(lèi)Entity(name = users)public claser Id GeneratedValue privateeger id;Column(name = name) private String name; Column(name = age) privateeger age;/ get set.springframework.bootspring-boot-startarent2.0.0.RELEASE.springframework.bootspring-boot-starter-data-jpa-connector-java.sp

28、ringframework.bootspring-boot-starter-web4.3.3 創(chuàng)建 User4.3.3 創(chuàng)建 IndexController4.3.4 啟動(dòng)項(xiàng)目EnableJpaReitories(com.itmayiedu.) EntityScan(basePackages = com.itmayiedu.entity) SpringBootApplicationpublic class JpaApp public sic void main(String args) SpringApplication.run(JpaApp.class, args);RestControll

29、erpublic class IndexController Autowiredprivate Useruser;RequestMap(/jpaFindUser)public Object jpaIndex(User user) Optional userOptional = user.findById(user.getId(); User reusltUser = userOptional.get();return reusltUser = null ? 沒(méi)有查詢到數(shù)據(jù) : reusltUser;publicerface Userextends JpaReitory 4.4、springbo

30、ot 整合多數(shù)據(jù)源思考下,在項(xiàng)目中有使用到多數(shù)據(jù)源嗎?原理使用根據(jù)包名,加載不同的數(shù)據(jù)源4.4.1 配置文件中新增兩個(gè)數(shù)據(jù)源4.4.2 配置文件中新增兩個(gè)數(shù)據(jù)源/DataSource01Configuration /到springboot容器中MapperScan(basePackages = com.itmayiedu.test01, sqlSesFactoryRef = test1SqlSesFactory)public class DataSource1Config /*methodDesc: 功能描述:(配置test1數(shù)據(jù)庫(kù))author:param: returncreateTime

31、:下午3:16:44returnType:return DataSourcecopyright:每特教育科技* */Bean(name = test1DataSource) ConfigurationProperties(prefix = spring.datasource.test1) Primarypublic DataSource testDataSource() return DataSourceBuilder.create().build();#datasource1spring.datasource.test1.driver-claame = com.jdbc.Driverspri

32、ng.datasource.test1.jdbc-url = jdbc:/localhost:3306/test01?useUnicode=true&characterEncoding=utf-8 spring.datasource.test1.username = rootspring.datasource.test1.password = root #datasource2spring.datasource.test2.driver-claame = com.jdbc.Driverspring.datasource.test2.jdbc-url = jdbc:/localhost:3306

33、/test02?useUnicode=true&characterEncoding=utf-8 spring.datasource.test2.username = rootspring.datasource.test2.password = root/*methodDesc: 功能描述:(test1 sql會(huì)話工廠)author:param: paramdataSourceparam: returnparam: throwsExceptioncreateTime:下午3:17:08returnType:param dataSourcereturnType:returnreturnType:t

34、hrows Exception SqlSesFactorycopyright:每特教育科技* */Bean(name = test1SqlSesFactory) Primarypublic SqlSesFactory testSqlSesFactory(Qualifier(test1DataSource) DataSource dataSource)throws Exception SqlSesFactoryBean bean = new SqlSesFactoryBean(); bean.setDataSource(dataSource);/ bean.setMapperLocations(

35、/ new/ PathMatchingResourcePatternResolver().getResour(classpath:mybatis/mapper/test1/*.xml);return bean.getObject();/*methodDesc: 功能描述:(test1 事物管理)author:param: paramdataSourceparam: returnparam: throwsExceptioncreateTime:下午3:17:08returnType:param dataSourcereturnType:returnreturnType:throws Except

36、ion SqlSesFactorycopyright:每特教育科技* */Bean(name = test1TranionManager) Primarypublic DataSourceTranionManager testTranionManager(Qualifier(test1DataSource) DataSource dataSource)return new DataSourceTranionManager(dataSource);Bean(name = test1SqlSesTemplate) Primarypublic SqlSesTemplate testSqlSesTem

37、plate(Qualifier(test1SqlSesFactory) SqlSesFactory sqlSesFactory) throws Exception return new SqlSesTemplate(sqlSesFactory);/DataSource2Configuration /到springboot容器中MapperScan(basePackages = com.itmayiedu.test02, sqlSesFactoryRef = test2SqlSesFactory)public class DataSource2Config /*methodDesc: 功能描述:

38、(配置test2數(shù)據(jù)庫(kù))author:param: returncreateTime:下午3:16:44returnType:return DataSourcecopyright:每特教育科技* */Bean(name = test2DataSource) ConfigurationProperties(prefix = spring.datasource.test2) public DataSource testDataSource() return DataSourceBuilder.create().build();/*methodDesc: 功能描述:(test2 sql會(huì)話工廠)au

39、thor:param: paramdataSourceparam: returnparam: throwsExceptioncreateTime:下午3:17:08returnType:param dataSourcereturnType:returnreturnType:throws Exception SqlSesFactorycopyright:每特教育科技* */Bean(name = test2SqlSesFactory)public SqlSesFactory testSqlSesFactory(Qualifier(test2DataSource) DataSource dataS

40、ource)throws Exception SqlSesFactoryBean bean = new SqlSesFactoryBean(); bean.setDataSource(dataSource);/ bean.setMapperLocations(/ new/ PathMatchingResourcePatternResolver().getResour(classpath:mybatis/mapper/test2/*.xml);return bean.getObject();/*methodDesc: 功能描述:(test2 事物管理)author:param: paramdat

41、aSourceparam: returnparam: throwsExceptioncreateTime:下午3:17:08returnType:param dataSourcereturnType:returnreturnType:throws Exception SqlSesFactorycopyright:每特教育科技* */Bean(name = test2TranionManager)public DataSourceTranionManager testTranionManager(Qualifier(test2DataSource) DataSource dataSource)r

42、eturn new DataSourceTranionManager(dataSource);4.4.2 創(chuàng)建分包 Mapper4.4.3 多數(shù)據(jù)源事務(wù)注意事項(xiàng)在多數(shù)據(jù)源的情況下,使用Tranional 注解時(shí),應(yīng)該指定事務(wù)管理者Tranional(tranionManager = test2TranionManager )4.4.5 啟動(dòng)項(xiàng)目SpringBootApplicationMapperScan(basePackages = com.itmayiedu.mapper ) public class App public sic void main(String args) Spring

43、Application.run(App.class, args);publicerface User1Mapper Insert(inserto users values(null,#age);)publicaddUser(Param(name) String name, Param(age)eger age);Bean(name = test2SqlSesTemplate)public SqlSesTemplate testSqlSesTemplate(Qualifier(test2SqlSesFactory) SqlSesFactory sqlSesFactory) throws Exce

44、ption return new SqlSesTemplate(sqlSesFactory);No qualifying bean of type javax.sql.DataSourceisdefined:expectedsinglematchingbeanbutfound2:test1DataSource,test2DataSource加上Primary 即可。Springboot1.5 的時(shí)候 沒(méi)有默認(rèn)指向數(shù)據(jù)源 會(huì)報(bào)錯(cuò)Springboot2.0 的時(shí)候 不報(bào)錯(cuò)五、事物管理5.1.1SpringBoot 整合事物管理Springboot 默認(rèn)集成事物,只主要在方法上加上Tranional

45、 即可5.1.2SpringBoot 分布式事物管理使用 springboot+jta+atomikos 分布式事物管理Atomikos 是一個(gè)為 Java提供增值服務(wù)的并且開(kāi)源類(lèi)事務(wù)管理器。 新增 jta-atomikos 依賴.springframework.bootspring-boot-starter-jta-atomikosThere was an unexpected error (type=ernal Server Error, sus=500).No qualifying bean of type .springframework.tranion.PlatformTranion

46、Manager available: expected single matching bean but found 2:test1TranionManager,test2TranionManager指定事務(wù)管理器 新增配置文件信息配置文件信息DataConfigurationProperties(prefix = .datasource.test1)public class DBConfig1 private String url; private String username; private String password; privateminPoolSize;privatemaxP

47、oolSize;#1.datasource.test1.url = jdbc:/localhost:3306/test01?useUnicode=true&characterEncoding=utf-8.datasource.test1.username = root.datasource.test1.password = root.datasource.test1.minPoolSize = 3.datasource.test1.maxPoolSize = 25.datasource.test1.maxLifetime = 20000.datasource.test1.borrowConne

48、ctionTimeout = 30.datasource.test1.logimeout = 30.datasource.test1.maenanceerval = 60.datasource.test1.maxIdleTime = 60#2.datasource.test2.url =jdbc:/localhost:3306/test02?useUnicode=true&characterEncoding=utf-8.datasource.test2.username =root.datasource.test2.password =root.datasource.test2.minPool

49、Size = 3.datasource.test2.maxPoolSize = 25.datasource.test2.maxLifetime = 20000.datasource.test2.borrowConnectionTimeout = 30.datasource.test2.logimeout = 30.datasource.test2.maenanceerval = 60.datasource.test2.maxIdleTime = 60 創(chuàng)建多數(shù)據(jù)源Configuration/ basePackages 最好分開(kāi)配置 如果放在同一個(gè)文件夾可能會(huì)報(bào)錯(cuò)MapperScan(baseP

50、ackages = com.itmayiedu.test01, sqlSesTemplateRef = testSqlSesTemplate)public class MyBatisConfig1 / 配置數(shù)據(jù)源PrimaryBean(name = testDataSource)public DataSource testDataSource(DBConfig1 testConfig) throws SQLException XADataSourceXaDataSource = newXADataSource(); XaDataSouretUrl(testConfig.getUrl();XaD

51、ataSouretlobalTxToPhysicalConnection(true);privatemaxLifetime;privateborrowConnectionTimeout;privatelogimeout; privatemaenanceerval; privatemaxIdleTime; private String testQuery;DataConfigurationProperties(prefix = .datasource.test2)public class DBConfig2 private String url; private String username;

52、 private String password; privateminPoolSize;privatemaxPoolSize;privatemaxLifetime;privateborrowConnectionTimeout;privatelogimeout; privatemaenanceerval; privatemaxIdleTime; private String testQuery;XaDataSouretPassword(testConfig.getPassword(); XaDataSouretUser(testConfig.getUsername(); XaDataSoure

53、tlobalTxToPhysicalConnection(true);AtomikosDataSourceBean xaDataSource = new AtomikosDataSourceBean(); xaDataSouretXaDataSource(XaDataSource);xaDataSouretUniqueResourceName(testDataSource);xaDataSour etMinPoolSize(testConfig.getMinPoolSize(); xaDataSour etMaxPoolSize(testConfig.getMaxPoolSize(); xaD

54、ataSour etMaxLifetime(testConfig.getMaxLifetime();xaDataSouretBorrowConnectionTimeout(testConfig.getBorrowConnectionTimeout(); xaDataSouretLogimeout(testConfig.getLogimeout();xaDataSouretMaenanceerval(testConfig.getMaenanceerval(); xaDataSouretMaxIdleTime(testConfig.getMaxIdleTime();xaDataSouretTest

55、Query(testConfig.getTestQuery();return xaDataSource;PrimaryBean(name = testSqlSesFactory)public SqlSesFactory testSqlSesFactory(Qualifier(testDataSource) DataSource dataSource)throws Exception SqlSes FactoryBean bean = new SqlSes FactoryBean(); bean.setDataSource(dataSource);return bean.getObject();

56、PrimaryBean(name = testSqlSesTemplate)public SqlSesTemplate testSqlSesTemplate(Qualifier(testSqlSesFactory) SqlSesFactory sqlSesFactory) throws Exception return new SqlSesTemplate(sqlSesFactory);ConfigurationMapperScan(basePackages = com.itmayiedu.test02, sqlSesTemplateRef = test2SqlSesTemplate)publ

57、ic class MyBatisConfig2 / 配置數(shù)據(jù)源Bean(name = test2DataSource)public DataSource testDataSource(DBConfig2 testConfig) throws SQLException XADataSourceXaDataSource = newXADataSource();XaDataSouretUrl(testConfig.getUrl();XaDataSouretlobalTxToPhysicalConnection(true); XaDataSouretPassword(testConfig.getPas

58、sword(); XaDataSouretUser(testConfig.getUsername(); XaDataSouretlobalTxToPhysicalConnection(true);AtomikosDataSourceBean xaDataSource = new AtomikosDataSourceBean(); xaDataSouretXaDataSource(XaDataSource);xaDataSouretUniqueResourceName(test2DataSource);xaDataSour etMinPoolSize(testConfig.getMinPoolS

59、ize(); xaDataSour etMaxPoolSize(testConfig.getMaxPoolSize(); xaDataSour etMaxLifetime(testConfig.getMaxLifetime();xaDataSouretBorrowConnectionTimeout(testConfig.getBorrowConnectionTimeout(); xaDataSouretLogimeout(testConfig.getLogimeout();xaDataSouretMaenanceerval(testConfig.getMaenanceerval(); xaDa

60、taSouretMaxIdleTime(testConfig.getMaxIdleTime();xaDataSouretTestQuery(testConfig.getTestQuery();return xaDataSource;Bean(name = test2SqlSesFactory)public SqlSesFactory testSqlSesFactory(Qualifier(test2DataSource) DataSource dataSource)throws Exception SqlSes FactoryBean bean = new SqlSes FactoryBean

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論