eclipse+maven+springboot+多数据源事物回滚+jsp+freemarker

本文详细介绍使用Maven搭建Spring Boot项目的步骤,包括环境配置、依赖管理及多数据源事务处理等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近微服务框架很火,于是自学了springboot,还包括springcloud(后期会整理出来)


首先到官网下载maven压缩包,地址:http://maven.apache.org/download.cgi

配置maven环境变量,新建一个maven_home,把你下载的maven地址粘贴到变量值


在cmd里面输入 mvn  -version 查看是否配置成功,然后在eclipse里面配置maven

1.打开Eclipse,依次打开Windows-->Prefrences,点击Maven的右边的三角符号,以展开Maven的配置界面

2.之后,点击Maven下面的Installations,出现如下界面,请点击Add,即以下红色圈出部分


3.之后,出现如下界面,请选择你的Maven的安装目录,这里我的Maven的安装目录为D:\Java\apache-maven-3.1.1  ,选择你的Maven安装目录,并点击确定, 之后可以点击Apply,点击OK,即可完成

4.注意,JDK用1.7以上的。



配置完成之后,开始创建maven工程


先说一下这个groupid 和artifactid ,第一个是你的公司域名,第二个是你的项目名, 如果要集成jsp这里packaging要选jar,一般选war,

其次,pom.xml是添加依赖,


添加这些依赖后,会自动下载所需要的jar包,这里重点说一下,比如jsp需要添加

<!-- jsp -->
    <dependency>
     <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
    </dependency>
    <!--jsp -->
    <dependency>
     <groupId>org.apache.tomcat.embed</groupId>
      <artifactId>tomcat-embed-jasper</artifactId>
    </dependency>


记住maven是不支持oracle驱动的,所以你必须手动添加到仓库里面去,先下载一个oracle驱动包,oracle11g的下载时候选第2个,下载完后,在cmd里面输入



mvn install:install-file -DgroupId=com.kingbasejdbc4 -DartifactId=kingbasejdbc4 -Dversion=10.2.0.1.0 -Dpackaging=jar -Dfile=E:\kingbasejdbc4.jar

这里的和pom.xml里的DgroupId DartifactId  Dversion要是一样的, 最后的Dfile是里的包路径,执行完后在pom.xml加入




所有的依赖可以到maven仓库去找,这里就不提供包了,


重点说一下多数据源事物回滚,

首先要有一个application.properties配置文件,

spring.datasource.dh01.url = 
spring.datasource.dh01.username = 
spring.datasource.dh01.password = 
spring.datasource.dh01.driver-class-name = 


spring.datasource.dh02.url = 
spring.datasource.dh02.username = 
spring.datasource.dh02.password =
spring.datasource.dh02.driver-class-name =

记住默认会读spring.datasource前缀,可以看一下我自己写的


首先说一下这个分层app是启动类,这个不多说了,controller是控制层,mapper是dao层,service是业务层,DataSource里的代码如下:

package com.zft.datasource;


import javax.sql.DataSource;


import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;


@Configuration //注入到spring容器中
@MapperScan(basePackages="com.zft.dh02",sqlSessionFactoryRef="dh02SqlSessionFactory")
public class Datasource02 {
/**
* 配置数据库
* bean 放入Spring容器中
* @return
*/
@Bean(name = "dh02DataSource")
@ConfigurationProperties(prefix="spring.datasource.dh02")
public DataSource testDataSource02(){

return  DataSourceBuilder.create().build();
}
/**
* sql会话工厂
* @param dataSource
* @return
* @throws Exception
*/
@Bean(name = "dh02SqlSessionFactory")
public SqlSessionFactory sqlSessionFactory(@Qualifier("dh02DataSource") DataSource dataSource) throws Exception{

SqlSessionFactoryBean bean = new SqlSessionFactoryBean();

bean.setDataSource(dataSource);
//bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:路径/*.xml"));


return bean.getObject();
}
/**
* 事物管理
* @param dataSource
* @return
*/
@Bean(name = "dh02TransactionManager")
public DataSourceTransactionManager dh02TransactionManager(@Qualifier("dh02DataSource") DataSource dataSource){

return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "dh02SqlSessionTemplate")
public SqlSessionTemplate sqlSessionTemplate(@Qualifier("dh02SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception{

return new SqlSessionTemplate(sqlSessionFactory);
}
}


那么在service中我们要加一个注解  @Transactional(value="dh02TransactionManager"),value的值是上面的方法名要相同,

其次要在项目入口处加一个@EnableTransactionManagement,这样就可以了。

 以上全是手敲键出来的,,觉得有帮助的 点个赞吧。

























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值