五.spring boot

通过springboot可以快速的搭建一个基于ssm框架的Java application,简单配置,自动装配

JavaConfiguration用java类来替代xml

Spring boot对常用的第三方的类库提供了方案,可以很好的和spring进行整合,一键搭建功能完备的java企业级的应用

开箱即用是Springboot的特点

优势:

  • 不需要任何的xml配置文件

  • 内嵌了Tomcat,看可以直接的部署

  • 默认转换json数据,不需要转换

  • 支持RESTful

  • 配置文件简单、支持YAM格式

    Spring boot是一种只需要极少配置的,就可以快速搭建spring应用,并且集成了常用的第三方的类库,让开发者可以快速的进行企业级的应用开发

Spring Boot2.x要求碧血基于Spring5.x,spring5.x要求java版本必须是8以上

开发

1.创建handller

package com.southwind.springboot.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
@RequestMapping("/hello")
public class HelloHandler {
@GetMapping("/index")
public String index(){
return "hello spring boot";
}
}

2.创建启动类

package com.southwind.springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
public class SpringbootApplication { public static void main(String[] args) {
SpringApplication.run(SpringbootApplication.class, args);
} }

启动类必须覆盖所有与业务相关的类:启动类所在的包必须是业务类所在的包或者父包,如果没有覆盖业务类就不会自动装配到ioc容器里

springboot的配置文件

1.改端口:

server.port=8181

2.自定义banner.txt

hello spring boot
#设置端口
server.port=8181
#项目访问路径
server.servlet.context-path=/springboot
#cookie失效时间
server.servlet.session.cookie.max-age=100
#session的失效时间
server.servlet.session.timeout=100
#编码格式
server.tomcat.uri-encoding=UTF-8

YAML:

YAML是不同与Properties的另一种形式,他同样可以用来写配置文件,springboot默认支持YAML格式。

优点:

编写简单,结构清晰,利用缩进的形式来表现层级关系

相比Properties更加简单编写,更加方便。

使用YAML格式:

server:
port: 8181
servlet:
context-path: /springboot
session:
cookie:
max-age: 100
timeout: 100
tomcat:
uri-encoding: utf-8

YAML格式的书写规范非常严格,属性名和属性之间必须要有一个空格

如果properties和YAML的优先级谁会更高呢?

properties会更高

配置文件除了可以放在resources路径之外还可以有三个位置

  • 工程根路径

  • resource下

  • resource下的包

  • 项目的src同级下的包内

    优先级

1.项目的src同级下的包内

2.工程根路径

3.resource下的包

4.resource下

可以直接在Handller中读取YAML中的数据,比如我们在业务方法中向客户端返回当前服务的端口的信息

package com.southwind.springboot.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
@RequestMapping("/hello")
public class HelloHandler { @Value("${server.port}")
private String port;
@GetMapping("/index")
public String index(){
return "当前服务的端口是"+this.port;
}
}

@Value注解同样适用于properties文件

Spring Boot 小知识、小demo、配置文件的更多相关文章

  1. Spring Boot加载application.properties配置文件顺序规则

    SpringApplication会从以下路径加载所有的application.properties文件: 1.file:./config/(当前目录下的config文件夹) 2.file:./(当前 ...

  2. spring boot简单的小demo(适合于初学者)

    import com.example.demo2.com.example.dao.ShopDao; import com.example.demo2.com.example.entity.Shops; ...

  3. spring boot 学习(七)小工具篇:表单重复提交

    注解 + 拦截器:解决表单重复提交 前言 学习 Spring Boot 中,我想将我在项目中添加几个我在 SpringMVC 框架中常用的工具类(主要都是涉及到 Spring AOP 部分知识).比如 ...

  4. spring boot常用注解小计

    @Async 需要执行异步方法时,在方法上加上@Async之后,底层使用多线程技术 .启动类上需要加上 @EnableAsync 注意:异步执行方法,不能与引用方法同在一个类里 @Transactio ...

  5. spring boot的一个小项目小型进销存系统

    项目所需的依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g ...

  6. Spring boot+CXF开发WebService Demo

    最近工作中需要用到webservice,而且结合spring boot进行开发,参照了一些网上的资料,配置过程中出现的了一些问题,于是写了这篇博客,记录一下我这次spring boot+cxf开发的w ...

  7. Spring Boot 概念知识

    转 http://rapharino.com/coder/Spring-Boot-Induction/ Spring Boot Induction 发表于 2016-10-29   |   分类于 c ...

  8. 曹工杂谈:Linux服务器上,Spring Boot 原地修改 jar 包配置文件/替换class文件,免去重复上传的麻烦

    一.前言 相信很多同学有这样的需求,现在很多公司都有多地的研发中心,经常需要跨地区部署,比如,博主人在成都,但是服务器是北京的.一般城市间网络都不怎么好,上传一个几十兆的jar包那是真的慢,别说现在微 ...

  9. Spring Boot整合Dubbo框架demo

    Dubbo框架原理见之前的博文:http://www.cnblogs.com/umgsai/p/5836925.html 首先启动zookeeper Server端 Pom配置如下 <?xml ...

  10. Spring Boot入门(一):使用IDEA创建Spring Boot项目并使用yaml配置文件

    由于公司最近在做技术转型(从.Net转Java),因此自己也开启了学习Java之路.学习Java怎么能不学习这几年这么火的Spring Boot框架,由于自己有总结的习惯,因此会把学习的过程以博客的形 ...

随机推荐

  1. 记一次spark数据倾斜实践

    参考文章: 大数据项目--倾斜数据的分区优化 数据倾斜概念 什么是数据倾斜   大数据下大部分框架的处理原理都是参考mapreduce的思想:分而治之和移动计算,即提前将计算程序生成好然后发送到不同的 ...

  2. Java阻塞队列中的异类,SynchronousQueue底层实现原理剖析

    上篇文章谈到BlockingQueue的使用场景,并重点分析了ArrayBlockingQueue的实现原理,了解到ArrayBlockingQueue底层是基于数组实现的阻塞队列. 但是Blocki ...

  3. 图神经网络之预训练大模型结合:ERNIESage在链接预测任务应用

    1.ERNIESage运行实例介绍(1.8x版本) 本项目原链接:https://aistudio.baidu.com/aistudio/projectdetail/5097085?contribut ...

  4. Excel2010工作簿被锁定,无法复制或者新增加sheet表格。

    Sub 工作簿密码破解() ActiveWorkbook.Sheets.Copy For Each sh In ActiveWorkbook.Sheets sh.Visible = True Next ...

  5. CH32V307以太网(芯片内部10M)-针对新固件的Lib库

    沁恒的CH32V307网络库在前段时间做了一个更新,相对于以前的Lib,主要的功能没有什么特别大的变化,但是底层的一些操作仔细看的话,还是不少的区别的. 首先,官方提供的例程,工程结构以及头文件优一些 ...

  6. 随身WIFI刷机记录 UF1003

    设备说明 拿到手的设备是UF1003的设备,入手价格23元. https://www.bilibili.com/video/BV1Ne4y1n7su/ 视频会同步到BIlibili,感谢大家的支持,点 ...

  7. Asp-Net-Core-搭建ELK日志平台-Docker-Compose版本

    title: Asp.Net Core 搭建ELK日志平台(Docker-Compose版本) date: 2022-09-27 15:16:59 tags: - .NET 由于暂时用不上Logsta ...

  8. 从0到1手把手实现vite

    什么是Vite? 法语:轻量化,快速 基于VUE3 非 打包开发服务器,请注意,它是个开发服务器哇!! 快速开发,按需编译,不再等待整个应用编译完成 基于原生模块系统ESModule实现 说白了,就是 ...

  9. Java基础学习笔记-流程控制

    Java程序结构 顺序结构 分支选择结构 循环结构 顺序结构 分支选择结构 if-else Switch case Switch case 注意点 要配合break,要不就会一直往下走 case 值必 ...

  10. angular---路由传参后点击获取详情点开自动加载详情