关于我:我是山茶,一个专注于技术的菜鸟。你懂的越多,就懂得不懂的越多。关注➕我,一起了解更多知识。
0.前言
在软件开发中,有许多的应用框架,可以提高开发效率,减少开发过程中的问题,从而使得应用开发变得更快、更好。其中java中目前使用的最广范的框架当属Spring家族中的springboot框架,它较Spring及SpringMVC有较多优点,具体如何使用和创建,请看下文。
1.SpringBoot简介
Spring Boot是由Pivotal团队提供的一套开源框架,可以简化spring应用的创建及部署。它提供了丰富的Spring模块化支持,可以帮助开发者更轻松快捷地构建出企业级应用。Spring Boot通过自动配置功能,降低了复杂性,同时支持基于JVM的多种开源框架,可以缩短开发时间,使开发更加简单和高效。
2.优势特征
2.1.可快速构建独立的Spring应用
Spring Boot主要是通过注解和自动化配置的方式推出的全新框架,旨在快速、敏捷的开发新一代基于Spring框架的应用程序。在构建Spring Boot项目时,只要根据需求选择对应的场景依赖,Spring Boot会自动添加该场景所需要的全部依赖并提供自动化配置,在无需额外手动添加配置的情况下可以快速构建出一个独立的Spring应用程序
2.2.支持java和groovy
Spring boot同时支持Java和Groovy。这意味着我们可以根据需求在spring boot中开发基于java或groovy的应用程序,而不需要像spring这样进行繁重的配置。
2.3.无版本
在spring boot中,我们知道我们不需要提及应用程序的版本。如果我们想添加任何新的依赖项,它将在内部为我们管理,然后我们可以直接添加它而不需要版本。因此,与spring框架一样,管理所有依赖项的版本非常困难,因为每次应用程序失败时,版本中都存在不匹配。我们可以将依赖项更改为pom。xml或.gradle文件,无版本或不关心版本。spring boot将为我们提供此功能。
2.4.直接嵌入Tomcat、Jetty和Undertow服务器(无需部署WAR文件)
Spring Boot项目不需要像传统的Spring应用一样打成WAR包的形式部署到Tomcat、Jetty或Undertow服务器中,运行一个Spring Boot项目,可以直接将项目打成JAR包的形式,并通过命令"java -jar xx.jar"运行。这是因为,Spring Boot项目内嵌了Tomcat、Jetty和Undertow服务器,因此在部署过程中减少了对第三方插件的依赖和管理。
2.5.管理配置文件
我们也可以在spring boot应用程序中轻松管理配置文件,我们可以为每个环境设置配置文件并创建应用程序文件,而不需要做很多事情。
2.6.为插件提供良好支持
spring boot为许多插件提供了良好的支持,这些插件可以在spring boot应用程序中使用,并在Gradle、maven等工具中进行测试。
2.7.实现微服务框架
通过使用spring boot框架,我们可以在应用程序中轻松实现微服务架构;它为此提供了良好的支持。此外,我们在线上有很多文档,如果我们遇到困难,可以找到很多解决方法。
3.快速入门
3.1.快速创建一个springboot应用程序
创建一个springboot应用程序有两种方式
第一种:直接使用IDE工具直接按照提示生成,
第二种:在springboot官网生成一个springboot应用,随后导入到对应的IDE工具中
ps:此处工具选择使用为IDEA工具
在这里我们只说明一个方式,另外一方式不在这里赘述,想要具体进行了解可以google一下,了解更多内容。
3.2.使用IDE工具生成一个SpringBoot应用程序
- 打开IDEA,打开路径File->New->Project
- 使用Spring Initializr方式构建Spring Boot项目
Spring Initializr是一个Web应用,它提供了一个基本的项目结构,能够帮助我们快速构建一个基础的Spring Boot项目
3)设置项目所属组,项目名称,选择java版本(从上到下分别是,项目所属组、项目名称、配置的方式、Java版本及Java配置信息)
- 选择对应的SpringBoot版本
选择开发中用到的配置依赖包,也可以不选择,在用到时向pom里面添加对应的jar,有一点需要注意,springboot选择版本的时候不需要选择过高的版本,根据实际应用选择就行,否则会出现不适配的错误,导致无法运行
- 创建后直接运行
运行成功的样例,注意在添加了mybatis及jdbc的pom配置后,在没有数据源的情况下会出现报错信息,这个时候要注意的是,我们有三种对应的解决方案(1.暂时不涉及到数据库操作,直接将对应的pom配置去除 2.在 SpringBoot 应用程序启动时,排除 jdbc 的自动装配机制即可,在程序入口文件中新增配置注解 " exclude=DataSourceAutoConfiguration.class " 3.配置一个可以用的数据库配置信息)
数据库的配置填写需要按照格式在application.properties中
ini
spring.datasource.driver-class-name = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://127.0.0.1:3306/dbTest?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username = root
spring.datasource.password = xxxx
3.3.使用SpringBoot开发一个可访问程序
在创建简单的访问程序前,首先要简单的了解下springboot的架构分层与各层之间的作用,简单的说SpringBoot 分为四层:controller层、service层、dao层、entity层。
entity层:和 model 层一样,存放的是实体类,属性值与数据库值保持一致,实现 setter 和 getter 方法。
dao层:即 mapper层,对数据库进行持久化操作,他的方法使针对数据库操作的,基本上用的就是增删改查,他就是个接口,只有方法名,具体实现在mapper.xml中实现。
service层:业务层,存放业务逻辑处理,不直接对数据库进行操作,有接口和接口实现类,提供 controller 层调用方法。
controller层:控制层,导入 service层,调用你service方法,controller通过接受前端传来的参数进行业务操作,在返回一个制定的路径或数据表。
(ps:看起来简单,但其实很多人并没有把他们职责划分开,在很多代码中,controller 做的逻辑比 service 还多, service 往往当成透传了,这其实是很多人开发代码都没有注意到的地方,反正功能也能用,至于放哪无所谓呗。这样往往造成后面代码无法复用,层级关系混乱,对后续代码的维护非常麻烦。后续文章针对这个进行展开讲解)
创建各层代码
Controller层
less
首先要确定增加注解Controller,类层的RequestMapping注解可以不加
@Controller
@RequestMapping("/nlefer")
public class FirstController {
@Autowired
FirstService firstService;
@RequestMapping("/firsttest")
public void showNlefer(@RequestBody String id){
System.out.println("世界你好");
firstService.saveData(id);
}
}
Mapper层代码即dao层代码
less
需要增加对应的mapper注解
@Mapper
public interface FirstMapper {
String saveData(@Param("id") String id);
}
Service
typescript
增加对应的Service注解
@Service
public class FirstService {
@Autowired
FirstMapper firstDao;
public String saveData(String id){
return firstDao.saveData(id);
}
}
这样我们整个的应用程序就基本上满足了我们的应用需求了,当然这个时候mapper.xml是需要根据具体的数据库要求进行操作的,需要你自己定制。
基本流程:接口请求->controller层->service层->dao层->数据库
4.总结
进行springboot项目创建的主要流程
1)创建一个springboot的基本工程调试通过,没有报错
2)根据业务需求增加业务逻辑的代码,要了解springboot 的架构层级,更好的进行业务代码开发
3)执行我们的springboot工程,使用api调试工具调试,验证是否通过
在业务开发过程中,springboot能让整体的开发效率得到提升,从而去思考更适合业务的好的整体设计。