springboot A项目jar包调用B项目,项目C接口调用A 事务添加

一. A项目jar包调用B项目

1.项目b打包依赖修改,把上面的springboot默认打包依赖注释,改为下面的,因为默认打包出来是可执行jar,导入项目a后无法扫描

<!--初始springboot打包插件-->
    <!--<build>-->
        <!--<plugins>-->
            <!--<plugin>-->
                <!--<groupId>org.springframework.boot</groupId>-->
                <!--<artifactId>spring-boot-maven-plugin</artifactId>-->
            <!--</plugin>-->
        <!--</plugins>-->
    <!--</build>-->
 
    <!--不可执行jar打包插件-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
  1. 将项目b打包安装到本地maven仓库,可以用idea界面操作或者命令行,然后把依赖写入项目a的pom中
      <dependency>
            <groupId>com.example</groupId>
            <artifactId>newauto1</artifactId>
            <type>jar</type>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
  1. 在项目a中的启动入口处添加需要启动扫描的包,包括项目a和项目b的

    注意:项目a和项目b中不能有同名的类名,否则会报错启动不了

@SpringBootApplication(scanBasePackages = {"com.demo4.demo", "com.example.newauto1"})
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

二.项目C接口调用A

  1. B有一方法
@Service
public class StuServiceImpl implements  StuService{
    @Autowired
    StuMapper stuMapper;
    @Autowired
    UsersMapper usersMapper;

    @Override
    public String findStu(String name) {
        Stu stu = new Stu();
        stu.setStuname(name);
        Stu stu1 = stuMapper.selectOne(stu);
        return stu1.toString();
    }
}
  1. A调用
@RestController
@RequestMapping("/stu2")
public class Stu2Controller {
    @Autowired
    private StuService stuService;

    @GetMapping("/select")
    public String getStu(@Param("userName") String userName ) {
        return stuService.findStu(userName);
    }
}

  1. C项目
package com.demo3.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.client.RestTemplate;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Controller
public class A {
    @Autowired
    RestTemplate restTemplate;
    /**
     * 带参数,返回list集合的get请求
     * @return
     */
    @GetMapping("/getMethodHasParamReturnList")
    public ResponseEntity<String> getMethodHasParamReturnList(){
        Map<String,Object> param=new HashMap<>();
        param.put("pageNum",1);
        param.put("pageSize",2);
        HttpHeaders headers=new HttpHeaders();
        ResponseEntity<String> response = restTemplate.exchange(
                "http://127.0.0.1:8082/stu2/select?userName=sss2",
                HttpMethod.GET,
                new HttpEntity<String>(headers),
                String.class,
                param);
        System.out.println(response.getBody());
        return response;
    }
}
  1. postman调用即可
    http://127.0.0.1:8080/getMethodHasParamReturnList

三.添加事务

sevice实现类 @Transactional

    @Override
    @Transactional
    public String insertStu(Stu stu) {
        stuMapper.insert(stu);
        Users users = new Users();
        users.setId(stu.getUserid());
        users.setUsername(stu.getStuname());
        int i = Integer.parseInt(stu.getStuname());
        users.setPwd(String.valueOf(i));
        usersMapper.insert(users);
        return "添加成功了"+stu.getStuname();
    }

启动类添加@EnableTransactionManagement

package com.example.newauto1;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import tk.mybatis.spring.annotation.MapperScan;

@SpringBootApplication
@MapperScan({"com.example.newauto1.mapper"})
@EnableTransactionManagement
public class Newauto1Application {

    public static void main(String[] args) {
        SpringApplication.run(Newauto1Application.class, args);
    }

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值