创建一个聚合项目

1  创建一个聚合项目

创建foodie-dev项目

在pom文件中设置聚合工程的顶级项目

    <packaging>pom</packaging>

选中项目,右键新建Module,foodie-dev-common

子工程的pom文件,

<!--    默认的打包方式是jar包-->
<packaging>jar</packaging>

 

新建module,foodie-dev-pojo,并且依赖common模块,在pojo的pom文件中,

<dependencies>
    <dependency>
        <groupId>com.zte</groupId>
        <artifactId>foodie-dev-common</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>

 添加其他模块

    <modules>
        <module>foodie-dev-common</module>
        <module>foodie-dev-pojo</module>
        <module>foodie-dev-mapper</module>
        <module>foodie-dev-service</module>
        <module>foodie-dev-api</module>
    </modules>

依赖关系api-->service-->mapper-->pojo-->common

完成这些之后,去maven里双击顶级项目的install,装配起来。

继续在父pom中添加各个配置项。

在api模块中创建工程

运行工程之前,还是要执行一边安装install操作;

2 SpringBoot的自动装配

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

查看run方法的源码

一个静态助手,可以来运行一个来自特定source的SpringApplication,这个source就是参数中的primarySource,这个Class泛型。第二个参数通常是java main方法的参数,也就是args。返回的是正在运行的ApplicationContext。

具体看下@SpringBootApplication注解。

@ComponetScan是包扫描,会扫描启动类Application所在包下面所有的class和子包下的class。

@SpringBootConfiguration

这个注解里面是一个接口,上面有@Configuration,表明这是一个容器,类似Spring里面的Beans,里面有很多Bean,然后用xml文件进行配置。

@EnableAutoConfiguration
这个注解点击进去之后,

查看@Import

注释上说,用来导入一个或多个Configuration(容器)

来查看导入的这个 AutoConfigurationImportSelector.class。

 

 

 查看spring.factories

 当满足一些要求的时候,会加载tomcat(springboot内嵌的tomcat)

点进去看一看到tomcat的默认配置。

帮忙自动装配了Spring MVC

给web server运行自动装配。

自动装配,启动tomcat

3 整合HikariCP

在父pom文件中添加mysql驱动和mybatis依赖

在api模块的yml文件中加入配置

运行之前,要重新install一下。

1-4 MyBatis数据库逆向生成

运行前同样需要install

4  结合通用Mapper,编写Restful风格Api

作为service,需要被容器扫描到,所以加了@Service注解

control+i,引入所有接口方法。

编写StuFooContorller,到StuServiceImpl,里面的getStuInfo方法,需要事务的支持,因为是查询,只选择SUPPOTS

1-10  事务传播详解

事务的声明是在serviceImpl层添加的

  • [REQUIRED]没有添加REQUIRED事务注解的时候,

第一个会被执行,把数据写到数据库中,因为中断,第二方法没有把数据写到数据库中,但是第一个方法在因为错误中断没有回滚; 

  •  [REQUIRED]给父级方法添加事务声明,子级方法不填加,事务会传递到子级,报错后操作回滚,数据库中没有数据。
  •  [REQUIRED]父级事务不填加事务声明,子级方法添加;被添加的子方法会回滚;
  •  [SUPPORTS]父方法不声明,子方法声明,不会加事务,报错数据库也不会回滚;因为查询的时候不需要事务回滚,所以使用SUPPORTS
  • 父方法声明[REQUIRED],子方法声明[SUPPORTS]
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值