Springboot

一 springboot

1 spring 的缺点

在spring boot出现以前,使用spring框架的程序员是这样配置web应用环境的,需要大量的xml配置。

  • 随着web项目集成软件的不断增多,xml配置也不断的增多,xml配置文件也在不断地增多,项目的依赖管理也越发的复杂。spring框架也因此饱受争议,配置文件难以理解且容易出错。

  • xml配置文件不但复杂,而且绝大部分属于模板配置,也就是说有80%以上的配置是不断重复的。在这个web项目里面这样配置,挪到另一个项目里面这部分配置仍然相同。

2 spring boot 改变了什么

Spring Boot的配置方式,就像是插头插座,就是这个标准。你第三方开源类库想接入进来,你就按照这个标准做一个starter的适配。spring MVC方式就像是手动接电线,很灵活,但是不同的人接出来的效果千差万别,而且很容易出错。Spring boot虽然灵活性不如Spring MVC的方式,并且你也不太清楚插座里面的线路是什么样,但就是方便易用。话说回来,当你习惯使用插头插座,你还期望自己是个电工不成?

这里有一个很重要的概念: 约定大于配置。你遵守一些规定,会让你的开发变得更加容易。

3 springboot项目搭建

# spring Initializr 方法
​
    1 选择spring Initializr创建项目   http://start.aliyun.com
​
    2 填写项目名称
                    
    3 选择springboot的版本,如果没有想要的版本,先随便选一个,然后去pom文件中修改
​
    4 勾选需要的模块,比如web  sql等
​
    5 项目会自动生成启动类
​
    6 编写controller 启动项目测试

也可以用maven的方式,没有这个简单和方便

在实际开发中,pom配置文件不需要你去关心,练习中可以直接复制配置文件。

在我们搭的这套环境中有:代码生成器,和接口文档生成的插件。要求自己能配置起来。

4 热部署

1 设置 file- setting - bulid - compiler,勾选build project automatically ,并且保存

2 ctrl+shift+atl + / , 选择registry , 勾选compiler.automake.allow.when.app.running

3 在依赖中添加spring-boot-devtools (dev开发环境的工具)

<!--devtools热部署-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
    <scope>true</scope>
</dependency>

另一种开发中常用的热部署:JRebel Intellij热部署插件JRebel_jrebel idea版本-CSDN博客文章浏览阅读10w+次,点赞112次,收藏444次。Intellij热部署插件JRebel安装JRebel激活JRebel相关设置Intellij热部署插件JRebel项目需求,一直用eclipse的我,也要改用IDEA了,一开始,很不习惯。经过几天的慢慢摸索和习惯之后,发现IDEA确实很好用。dark的界面是我喜欢的,智能的提示也让写代码不再枯燥。 遗憾的是IDEA本身没有集成热部署工具,一开始改动代码之后,都需要重新r..._jrebel idea版本https://blog.csdn.net/weixin_42831477/article/details/82229436

Welcome to JetBrains License Server!:) +uuid

GUID online erstellen Kostenloses Tool, um global eindeutige Nummern (GUIDs) zu generierenicon-default.png?t=N7T8https://www.guidgen.com/

5 依赖管理

1 spring-boot-starter-parent 依赖: 底层依赖spring-boot-dependenies, 有个properties标签,里面包含了其他依赖的版本。可以理解为就是一个版本的管理器

2 spring-boot-starter-web 的理解:在springboot项目中引入此启动器,底层的原理是:系统写好了一个spring-boot-starter-web项目,这个项目依赖于spring-boot-starter-json, tomcat,web,webmvc。个人认为就是一种模块之间的依赖传递。

6 代码生成器

  • 使用的是mybatis代码生成器

<plugin>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-maven-plugin</artifactId>
    <version>1.3.2</version>
    <configuration>
        <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
        <verbose>true</verbose>
        <overwrite>true</overwrite>
    </configuration>
</plugin>
  • generatorConfig.xml

# 1 数据库驱动包位置
# 2 数据库链接URL、用户名、密码
# 3 实体类生成位置
# 4 mapper和xml位置
# 5 指定用哪个表来生成

@RestController = @ResponseBody + @Controller

@RequestBody 前端给你传的数据是json格式的(参数封装到请求体 post),可以直接封装到java对象中

如果给你的参数是地址栏拼接的,就不用RequestBody

404 找不到路径

403 禁止访问

405 请求方式不匹配

7 日志

logback-spring.xml

需要注意以后要修改包名,其他的不用动

怎么打印日志

Log log = LogFactory.getLog(类名.class);

log.info(日志内容)

8 日期转换

  • 导入依赖

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.10.1</version>
</dependency>
​
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.10.1</version>
</dependency>
​
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.10.1</version>
</dependency>
  • 消息转换器

package com.xinzhi.config;
​
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;
​
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
@Component
public class DateConverter implements Converter<String, Date> {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    @Override
    public Date convert(String source) {
        try {
            return sdf.parse(source);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
}
  • 配置文件中添加

spring.jackson.date-format =yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8

9 接口文档

  • 引入插件

 <plugin>
     <groupId>com.github.shalousun</groupId>
     <artifactId>smart-doc-maven-plugin</artifactId>
     <version>1.1.7</version>
     <configuration>
         <!--指定生成文档的使用的配置文件,配置文件放在自己的项目中-->
         <configFile>./src/main/resources/smart-doc.json</configFile>
         <!--指定项目名称-->
         <projectName>sboot</projectName>
         <!--smart-doc实现自动分析依赖树加载第三方依赖的源码,如果一些框架依赖库加载不到导致报错,这时请使用excludes排除掉-->
         <excludes>
             <!--格式为:groupId:artifactId;参考如下-->
             <exclude>com.alibaba:fastjson</exclude>
         </excludes>
         <!--自1.0.8版本开始,插件提供includes支持-->
         <!--smart-doc能自动分析依赖树加载所有依赖源码,原则上会影响文档构建效率,因此你可以使用includes来让插件加载你配置的组件-->
         <includes>
             <!--格式为:groupId:artifactId;参考如下-->
             <include>com.alibaba:fastjson</include>
         </includes>
     </configuration>
</plugin>
  • 指定配置文件

  • 记得要将实体类和controller的注解都补充完整

  • 生成指定格式文件

10 打包部署

  • 修改启动类名称

  • 点击package

  • 将zip包放到服务器上,并且解压

  • 修改shell脚本

  • 上传到linux,并且修改执行权限 chmod 777 run.sh

  • 启动脚本 ./run start

相关推荐

  1. SpringBoot

    2024-01-18 16:58:02       50 阅读
  2. springboot

    2024-01-18 16:58:02       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-18 16:58:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-18 16:58:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-18 16:58:02       82 阅读
  4. Python语言-面向对象

    2024-01-18 16:58:02       91 阅读

热门阅读

  1. rfcat 正确完美安装

    2024-01-18 16:58:02       53 阅读
  2. 最短路径 Dijkstra

    2024-01-18 16:58:02       54 阅读
  3. ElasticSearch高阶使用

    2024-01-18 16:58:02       40 阅读
  4. Docker查找docker组及用户

    2024-01-18 16:58:02       51 阅读
  5. 深度学习中的最优化算法是什么?

    2024-01-18 16:58:02       67 阅读
  6. gateway和base包+Jdk17和Jdk8版本切换(总结)

    2024-01-18 16:58:02       52 阅读
  7. 【协议】XMLHttpRequest的梳理和总结

    2024-01-18 16:58:02       48 阅读
  8. openlayers [一] openlayers简介

    2024-01-18 16:58:02       47 阅读
  9. udf提权

    udf提权

    2024-01-18 16:58:02      53 阅读
  10. css实现二级导航下拉菜单

    2024-01-18 16:58:02       52 阅读