您现在的位置是:首页 >技术杂谈 >SpringBoot网站首页技术杂谈
SpringBoot
目录
前言:
了解SpringBoot:
Spring是为了简化java开发,SpringBoot是为了简化Spring程序开发,是Spring的一次伟大进步
SpringBoot最核心功能:
- 快速添加依赖 不用在maven里面找了,直接在创建的时候勾选想要的依赖,不版心版本兼容性问题。
- 内置web容器 不用在本地下载一个tomcat进行部署打包,而是直接运行web容器
- 自动装配 比如数据库的操作,常规添加依赖,设置Spring datasorce xml设置一些连接数据库参数等,编写代码从Spring中读取从xml链接,设置给datasource对象,这些步骤都和Servlet类似.这些都是手工装配。现在通过Spring boot设置一下数据库,然后自动根据设置内容,构建一个datasouce对象,构建好的对象直接使用
一.SpringBoot的创建和使用:
创建Spring Boot项目
1.new project,注意我们使用的是Springboot 2对应jdk 8.
这个插件需要在Plugins里面搜索Spring boot heaper,下载2022.1月份都是免费版的
现在最新版的是Spring boot3 基于spring 6,jdk最低要17,jdk临时版每半年发布一次,长期版大概三年,隔5个版本
2.勾选一下,红色必要勾选,目前打包管理工具有maven和gradle,gradle比maven打包更快,增量打包和全量打包区别
3.选取Spring boot版本,和使用的工具包 2.x都是免费的,Spring boot devtools(热部署),spring web
4.设置项目名称和路径(不要出现中文)
5.完成项目的初始化,红色表示项目没有初始化好不能运行,需要右键添加maven
2.目录结构:
创建一个类输出hello world
1.添加启动类:
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication//spring boot的启动类
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
2.创建一个类注意和Application平级,写一个方法,实现判别名字输入@RequestMapping设置路由地址
package com.example.demo;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller//当前类为控制器
@ResponseBody//返回的是数据,而非页面
public class TestController {
@RequestMapping("/hi")
public String sayHi(String name) {
// if (name == null || name.equals("")) {
// name = "zhangsan";
// }
if(!StringUtils.hasLength(name)){
name="zhangsan";
}
return "nihao " + name;
}
}
3.运行,输入网站:
网页版创建:
生成jar包
解压文件在idea中打开即可
二.Spring Boot配置文件
配置文件的作用和格式
在整个项目中所有的重要数据都是在配置文件中配置的
- 数据库的连接信息 业务中数据库是很多的,到底和哪个连
- 项目的启动端口 微服务,每个项目分不同模块不同应用程序不同端口
- 第三方调用密钥等信息 权限限制,存取密钥(放到配置文件中,后期调整密钥直接在配置文件中调,jar包是调整不了的),调用密钥来解决接口
- 用于发现问题和定位问题的普通日志和异常日志
总结:1.系统的配置文件 如端口设置,连接数据库的配置,Springboot规定的必须要有
2.用户自定义配置文件 给用户自己用的
配置文件的格式:
properties &&
yml可以看做是properties升级版,如果同时出现俩种格式,以properties为主
注意:
约定配置文件开头必须是application
约定yml是层级格式
在resource里面新建yml,设置端口6666,在properties设置8888,结果是8888
properties配置文件的基本语法:
键值形式,key value之间=连接,例如添加数据库的连接信息:
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/java105?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123
读取配置文件
properties配置
在项目中想要主动读取配置文件内容使用注解@Value以&{}格式读取
在properties中自定义配置属性:
mytest="张三"
在TestContorller中读取
package com.example.demo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller//当前类为控制器
@ResponseBody//返回的是数据,而非页面
public class TestController {
@Value("${mytest}")
private String mytest;
@RequestMapping("/gerconf")
public String getConfig(){
return mytest;
}
}
首先注意注解@Value,从指定的配置中找到建mytest将他的值赋给变量mytest,然后设置路径,中读取
结果如下:
缺陷: 出现乱码问题需要自定义编码格式
另外由于properties没有设置层级会出现很多重复代码:
使用yml配置文件
基础语法 key:value 中间使用:和空格连接的
server:
port: 6666
#连接数据库
Spring:
datasource:
url:jdbc:mysql://127.0.0.1:3306/java105?characterEncoding=utf8
name:root
password: 122
行内写法:也是有空格
Student: {id: 1,name: java,age: 18}
此时想要读取需要注解@ConfigurationProperties
2)yml配置不同数据类型
类型.value,注意~表示null
#字符串
string.value:hello
#布尔值
boolean.value:true
#整数
int.value:10
#浮点数
float.value:3.14
#NUll ~表示null
null.value:~
3)yml单双引号的问题