SpringBoot的简单介绍和创建新项目,以及事务的配置和项目打包

首先开篇我们要知道,SpringBoot 和 Spring 和 Spring Cloud 的之间的关系。

我们要知道,SpringBoot 就是对 Spring 的封装,

他们之间的关系可以这样说:

Spring Boot是 Spring的一套快速配置脚手架,可以基于 Spring Boot快速开发单个微服务, SpringCloud是一个基于 Spring Boot实现的云应用开发工具; 

Spring Boot专注于快速、方便集成的单个微服务个体,Spring Cloud关注全局的服务治理框架; 

Spring Boot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置, 

Spring Cloud很大的一部分是基于 Spring Boot来实现,可以不基于 Spring Boot吗?不可以。

Spring Boot可以离开 Spring Cloud独立使用开发项目,但是 Spring Cloud离不开 Spring Boot,属于依赖的关系

 

或者我直接画图,这样说会简单点,

SpringCloud ---> SpringBoot ---> Spring

SpringCloud 依赖于 SpringBoot 才能工作

SpringBoot 依赖于 Spring 才能工作

 

接口开发里,大的来说分 HTTP协议和TCP/IP协议,

dubbo 就是属于基于TCP/IP协议。

普通接口和 restful 这种格式的或者说是风格的接口(URL+动作),和SpringBoot 开发的接口都是基于HTTP协议的接口。

注:restful风格类似于下图@RequestMapping

继续说刚刚的话题说,

在他们这些公司在开发HTTP协议的接口的时候,基本不用或者说用的少,这种普通开发。

为什么说用SpringBoot开发接口?

很简单,开发效率!开发时间更短,开发更简单,开发更方便,效率更高,能创造更高的价值。

但是要注意的是,普通接口和 restful 接口开发没什么区别,就是在风格上的区别。

但是SpringBoot和普通接口与restful有本质的区别。

 

普通接口与restful都是基于SpringMVC的接口,

里面的配置文件涉及到Web.xml,spring-mvc-controller.xml 因为要对 controller 层进行扫描和开启注解驱动。spring-common.xml(数据源,扫描map的 sqlSessionFactory,事务,扫描Service层,还有持久层各种各样的xml都是配置文件等等等等)。

SpringBoot 开发的http协议的接口,启动的时候,通过main方法启动,说的直白点就是通过打成jar包(可运行的可启动的)进行项目的启动和部署。

 

然后是创建SpringBoot项目:

在新建SpringBoot项目的时候,需要保证的是你要连接到外网,因为他是需要去下载一些东西的,当然,也有那种连接内网的办法,但是太麻烦。

我用的是IDEA

首先,如下图

然后,如下图

上图的直接过,直接下一步,用默认的不动。

然后如下图

然后下一步如下

没了,直接下一步。如下

不动,下一步。如下

然后就等着下jar包吧,要记得配置阿里私服,或者别的什么的都行。

然后我们看一下pom.xml里都引入了什么。

主要引入的就是这些,其他的可以先忽略不计。

刚刚咱们说了,是打成jar包,这里就有(上图)。

 

然后,有人纳闷了,为什么这么少,SpringBoot引入的有点少。

SpringBoot好就好在,它不仅对Spring的封装,还对pom.xml 引入的依赖都做了封装。

你像这个

它对SpringMVC 的 jar包的封装

你可以看看这个位置,如下:

这样你就不用考虑版本号会不会冲突啊,等等等等的一些个问题。

然后就看结构,结构也有别变动。如下

注:application.properties 这个文件不要改名字和改动地方,类似于约定优于配置的意思,没必要去改。

这个文件也是唯一的配置文件,缓存,消息队列,数据库连接等等等等。

这是第一个特点:唯一的配置文件。

第二个特点:@SpringBootApplication

之所以会省略很多个配置文件的原因就是这个注解,来解决和配置文件相关的联系的是事情。

什么扫描Service~什么注入乱七八糟的SpringBootApplication都帮你做了。

 

然后就是说我们刚刚说了,这个SpringBoot是通过打成jar包来运行的,

这些地方都能直接运行,它就是一个java程序,直接运行。

 

还有就是我们刚刚说的application.properties文件里面怎么写,比方说我们要写数据库连接,那么如下:

注意!里面的黄色字体一概不能动,都是约定好的key!是不能瞎写的,都是关键字,这些网上都能找到,想用什么都可以去网上去找。

 

然后就是SQL语句,我们可以写到Mapper

还有

咱们继续说,这个select有几个问题。

写select他根据xml里面有这个ParameterType和ResultType,传参的时候才有ParameterType,不传参就先不写 ParameterType,

但是我写的这个是有返回值的需要写ResultType,但是这里不是写ResultType,而是@Results,Results是个结果。

里面是这样写的

colum就是相当于map,作为列和属性的映射。

id指的是@Select里面的列名(或者叫字段名),

然后colum给了prproperty的id属性(打比方说的),prproperty后面的id就是实体类里的 id属性。

实体类如下:

所有map.xml里面的SQL都可以通过注解的方式写到java类。

 

在之前的时候,我们在spring-common里对map层的接口进行扫描,

那我们现在需要再SpringBootApplication下面多写个@MapperSean

 

启动,

这条,端口号没问题,HTTP协议没问题,Tomcat ? 不是main启动吗?要知道SpringBoot里面内嵌了Tomcat(当jar包内嵌了)。

看这里

启动,放结果

注:中间做了些操作,就是查询没什么别的,我主要记录的是一些关键的地方。

 

然后就是事务。

我们刚刚做的查询只是只读事务,事务只有增删改的时候才配,提交的时候是用不到。

那怎么配事务?直接Service层一个@Transactional  下图:

注:这只是对这个接口配了事务,要是有其他接口,那其他的接口还要单独配事务,并不是写一遍就对所有的接口都配了事务。

注解就是写到哪哪生效,配置文件是用了切点表达式,是对所有的Service层里的方法进行事务的控制。

这就是注解和配置文件的区别。

只读事务怎么配?@Transactional(readOnly = true) 如下:

这样,就能控制到只有这一个方法是只读事务,其他的都继承的类上的@Transactional这个注解的事务。

类似于子类和父类有同样的东西,子类覆盖父类的东西。

没有就继承父类。

 

那如何解决运行时异常?如下:

 

打包也顺带说一下。

然后我们就能在项目的目录下找到如下:

然后右击,找到如下一行打开文件夹

就可以了

好了,先这样吧。

如有问题,请指出,在下将感激不尽。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

槐序二十四

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值