Spring Boot

Spring Boot

概述

继承了Spring良好基因,青出于蓝而胜于蓝

简化编码

  • 起步依赖中封装集成了JavaWeb开发的基本依赖,不用再一个个导入依赖,从而简化了开发

简化配置

  • application.yml,配置端口以及其他第三方配置

简化部署

  • 内部集成tomcat,启动类一键运行

简化监控

  • 使用 spring-boot-starter-actuator 可以用于检测系统的健康情况、当前的Beans、系统的缓存等

项目搭建与结构

环境

  • File -> Project Structure -> SDKs -> JDK home path

  • File->settings ->>搜索maven进行配置

  • File->settings ->>搜索encoding进行配置

    • utf-8

创建项目

  • IDEA 中可以通过File->New->Project来快速构建 Spring Boot 工程记得勾选web

项目结构

  • src/main/java

    • 编写主要程序
  • src/main/resources

    • 存放静态文件和配置文件
  • src/test/java

    • 编写测试程序

Json数据的封装

Spring Boot默认使用自己集成的jackson框架

  • null替换为""需要添加一个配置类进行处理

@ResponseBody 返回给前端Json数据

@RequestBody 前端传递过来的Json转化为JavaBean

FastJson 阿里的Json解析框架

fastjson

  • 对null值处理需要添加配置类

统一的Json结构

  • public class JsonResult {
    private T data;
    private String code;
    private String msg;
    }

slf4j简单的日志门面

application.yml 中对日志的配置

  • logging:
    config: logback.xml
    level:
    #配置dao层mapper的日志输出级别为:trace
    com.soft.dao: trace
  • 日志输出级别自高到低:ERROR、WARN、INFO、DEBUG、TRACE

logback.xml 配置文件解析

  • 1、定义日志输出格式

  • 2、控制台输出日志且引用–>1、输出格式

  • 3、定义日志文件存储位置

  • 4、配置日志文件的详细参数

    • 存储位置引用–>3、的配置存储日志
    • 日志保存时间
    • 单个日志文件的最大,超过则新建日志文件存储
  • 5、定义项目中默认日志输出级别

  • 6、

    • 引用–>2、控制台日志配置
    • 引用–>4、定义日志文件的相关参数

使用Logger在项目中打印日志

  • private final static Logger logger = LoggerFactory.getLogger(当前类.class);

  • 假设在logback.xml内中配置了日志输出级别为info

  •     logger.error("=====测试日志error级别打印====");
    
  •     logger.warn("======测试日志warn级别打印=====");
    
  •     logger.info("======测试日志info级别打印=====");
    
  •     logger.debug("=====测试日志debug级别打印====");
    
    • 输出级别低于info不打印

项目属性配置

1、application.yml

  • 配置多个微服务的地址

url:

订单微服务的地址

orderUrl: http://localhost:8002

用户微服务的地址

userUrl: http://localhost:8003

- 单个url注入

	-     @Value("${url.orderUrl}")
private String orderUrl;

- 多个url注入

	- 1、引入依赖

		- <!-- 引入configuration-processor依赖-->

spring-boot-configuration-processor

	- 2、添加MicroServiceUrl 类

		- //定义一个 `MicroServiceUrl` 类来专门保存微服务的 url

@Component
@ConfigurationProperties(prefix = “url”)
public class MicroServiceUrl {
private String orderUrl;
private String userUrl;
//需要添加getter和setter
}

	- 3.注入MicroServiceUrl类

		-     @Resource
private MicroServiceUrl microServiceUrl;

	- 4、通过microServiceUrl获取url

		- 例:microServiceUrl.getOrderUrl()
    microServiceUrl.getUserUrl()
  • application-dev.yml

    • 开发环境配置文件

server:
port: 8001

  • application-pro.yml

    • 生成环境配置文件

server:
port: 8002

  • application.yml

    • 指定开发环境

      • spring:
        profiles:
        active:
    • dev

MVC开发

//不需要转换Json就用@Controller

@RestController

  • 控制层注解,内部包含:

    • @Controller
    • @ResponseBody

//映射请求地址

@RequestMapping

  • 可以用于类上也可以用于方法上

    • value 属性:指定请求的实际地址,value 可以省略不写

    • method 属性:指定请求的类型,主要有 GET、PUT、POST、DELETE,默认为 GET

    • produces属性:指定返回内容类型,如 produces = “application/json; charset=UTF-8”

    • 此类注解只能用在方法上

      • @GetMapping
      • @PutMapping
      • @PostMapping
      • @DeleteMapping

获取参数

  • @PathVariable

    • //注解主要是获取restfull 风格的url 参数
    • //例如:localhost:8080/test/user/2/zhangsan
    • @GetMapping(“/user/{idd}/{name}”) //{}里面为占位符
      public String testPathVariable(@PathVariable(value = “idd”) Integer id, @PathVariable String name) {
      System.out.println(“获取到的id为:” + id+" "+“获取到的name为:” + name);
      }
  • @RequestParam

    • 支持此类url

      • http://localhost:8080/user?id=1

      • http://localhost:8080/user?idd=1

        • @RequestMapping(“/user”)
          public String testRequestParam(@RequestParam(value = “idd”, required = false) Integer id) {}
      • post提交

        • @PostMapping(“/form1”)
          public String testForm(@RequestParam String username, @RequestParam String password) {}
    • 参数

      • required 属性,false为可有可无
      • defaultValue 属性:默认值,比较少用,如果没用则没有默认值

@RequestBody

  • 注解用于接收前端传来Json转化为对应的JavaBean

@Configuration

  • 表明该类是个配置类

    • @Bean
    • @Bean在方法上就是明确地指示了一种方法,什么方法呢——产生一个bean的方法,并且交给Spring容器管理;

集成 Swagger2

导入依赖

  • springfox-swagger2
  • springfox-swagger-ui
  • 需要注意的是Spring Boot对于Swagger2的版本存在兼容性问题,需要根据自己的Spring Boot版本选择对应的Swagger2

添加配置类

  • @Configuration
    @EnableSwagger2

    • @Bean
      public Docket createRestApi() {}

      • return new Docket(DocumentationType.SWAGGER_2)

        • .apiInfo(apiInfo())

          • 指定构建api文档的详细信息的方法:apiInfo()
        • .select()

        • .apis(RequestHandlerSelectors.basePackage(“com.soft.controller”))

          • 指定要生成api接口的包路径,一般把controller作为包路径,生成controller中的所有接口
        • .paths(PathSelectors.any())

        • .build();

    • private ApiInfo apiInfo() {}
      
      • 构建api文档的详细信息

      • return new ApiInfoBuilder()

        • .title(“Spring Boot集成Swagger2接口总览”)

          • // 设置页面标题
        • .description(“学生管理模块接口”)

          • // 设置接口描述
        • .contact(“李易尘,” + “lxg5583@163.com”)

          • // 设置联系方式
        • .version(“1.0”)

          • // 设置版本
        • .build();

          • //构建

实体类注解

  • @ApiModel(value = “用户实体类”)

    • 注解用于实体类,表示对类进行说明,用于参数用实体类接收。
  • @ApiModelProperty(value = “属性 1”)

    • 注解用于类中属性,表示对 model 属性的说明或者数据操作更改。

Controller 类中相关注解

  • @Api(value = “Swagger2 在线接口文档”)

    • 注解用于类上,表示标识这个类是 swagger 的资源。
  • @ApiOperation(value = “根据ID获取用户信息”)

    • 注解用于方法,表示一个 http 请求的操作。
  • @ApiParam(value = “用户唯一标识ID”)

    • 注解用于参数上,用来标
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值