一站式做网站企业,做婚纱影楼网站的价格,互联网传媒公司,东光做淘宝网站目录 一、为什么要学Spring Boot
1、Spring Boot的优点 二、创建Spring Boot项目
1、创建项目之前的准备工作
2、创建Spring Boot项目
3、项目目录的介绍
4、安装Spring Boot快速添加依赖的插件
5、在项目中写一个helloworld 三、Spring Boot的配置文件
1、配置文件的…目录 一、为什么要学Spring Boot
1、Spring Boot的优点 二、创建Spring Boot项目
1、创建项目之前的准备工作
2、创建Spring Boot项目
3、项目目录的介绍
4、安装Spring Boot快速添加依赖的插件
5、在项目中写一个helloworld 三、Spring Boot的配置文件
1、配置文件的作用
2、properties格式的配置文件
2.1、基本语法格式 2.2、读取配置项
3、yml格式的配置文件 3.1、yml基本语法
3.2、使用yml配置对象 4、配置集合 一、为什么要学Spring Boot
Spring的诞生是为了简化Java程序的开发而Spring Boot的诞生是为了简化Spring程序开发的他就是Spring框架的脚手架。为了快速开发Spring程序而开发的一个框架。
Spring和Spring Boot开发效率就像下面的图片
Spring Spring Boot 火车让我们出行方便但是高铁让我们的生活更便捷这就像我们的Spring和Spring Boot。 1、Spring Boot的优点 起步依赖常见项目的时候就可以方便的添加依赖不再需要像Spring在添加依赖的时候需要让添加的依赖之间版本相匹配。开发前内置Tomcat容器把外部项目可以像内部项目一样直接运行。不需要再打一个war包将程序放到Tomcat的webapps目录中再启动Tomcat。开发中快速部署使用jar包加上简单的命令就可以再服务器上直接运行也就是服务器上只要装配了1.8及以上版本的JDK就可以直接以jar包方式启动使用Spring Boot内置的Tomacat运行。开发后抛弃了XML的配置方式Spring中使用XML的方式配置文件首先就需要我们将特定的代码先复制到文件中然后根据自己的需要配置比较繁琐。Spring Boot中的配置文件是空白的你需要配置什么写什么即可。提供了更多的监控框架方便了监控系统运行。 二、创建Spring Boot项目
1、创建项目之前的准备工作
还是之前说过的如果你想使用的idea社区版那么就需要你安装2021.3.x版本或者这份版本之前的版本因为社区版新版本对我们安装的一些插件收费。
创建Spring Boot项目之前需要安装Spring Boot Helper插件 这个插件安装完成之后它的图标和名字就发生了改变变成了下面的这个东西。 2、创建Spring Boot项目 这一步就是我们上面说的起步依赖 注意到这里并不是所有人的项目会创建成功我们还需要检查一下自己的国内源是否配置正确。
检查和配置当前项目的国内源 设置往后新创建的项目的国内源 具体的setting.xml文件的配置可以看我的这篇博客【Spring】创建一个Spring项目与Bean对象的存储_奋斗べ青年.的博客-CSDN博客 这样选择了之后才会继续加载我们的项目 项目创建好了之后一些文件我们是需要删除的因为我们用不上 到这里一个Spring Boot 项目就创建完成了。
3、项目目录的介绍 4、安装Spring Boot快速添加依赖的插件
这里需要知道的是这个插件中只是提供了Spring Boot中最常用的jar包依赖不太常用到的这个里面是没有的还是需要我们在maven仓库中找到手动添加依赖。 使用这个插件需要我们在pom.xml文件中单机鼠标右键 然后就会弹出下面的框 5、在项目中写一个helloworld
这里需要注意的是创建类需要在demo包底下创建的不能在Java包的其他包底下创建在其他包底下创建的类是不能别识别的。 当我们将创建的TestController类添加到example包下这个时候重启再次访问是访问不到的的。 Spring Boot核心思想约定大于配置。Spring Boot中有许多约定或规范你必须遵循。这里需要遵循的约定就是所有你要放在容器中的对象的类都必须和启动类在同一个目录下或者是在启动类所在目录的子目录中。如果不放就会扫描不到。 三、Spring Boot的配置文件
1、配置文件的作用
Spring Boot项目中所有重要的数据都是在配置文件中配置的比如 数据库的连接信息包括用户名和密码的设置项目的启动端口第三方系统的调用密钥等信息用于发现和定位问题的普通日志和异常日志等。 配置文件的格式有两种properties和yml(yaml) 。虽然有两种格式但是配置文件的名字都需要是application如果配置文件的名字是其他的那么这个文件不会被识别那么其中的配置信息也就并不会生效。
properties格式的配置文件可以和yml格式的配置文件共同存在于一个项目中但是如果两个配置文件中出现了同样的配置信息比如两个配置文件中都配置了server.port指定tomcat的端口号不同那么这个时候就会以properties格式的配置文件中的配置为主也就是说properties配置文件优先级高但是两个配置文件都会被加载。只不过是优先级高的先加载。 一个项目中可以将两种格式的配置文件共存但是实际使用中我们通常只会采用一种格式的配置文件。这样可以更好的维护管理。
2、properties格式的配置文件
2.1、基本语法格式
properties的语法是用键值对的形式来组织的key与value之间是使用连接的并不需要多余的空格和缩进。配置文件中使用#号来添加注释信息。如下面的代码
server.port8888✨这里需要注意的是我们在properties格式的配置文件中写了注释信息注释信息中存在中文可能在下次打开这个项目的时候注释信息中存在的中文会乱码因为properties格式的配置文件中默认的字符集是ISO-8859-1. 解决中文乱码问题可以在setting中设置来解决。但是当前已经写了的中文在设置好了之后再次打开还是乱码但是将字符集修改之后添加的中文就不会在出现乱码的问题了。
这个操作只是修改当前项目的。 我们需要将从今往后创建的所有新项目都改为UTF-8点击进入之后和上面的操作一样搜索encoding然后将所有的字符集都改为UTF-8. ✨所有的配置文件中存在两类配置项系统配置项和用户自定义配置项 系统配置项例如配置端口号 server.port用户自定义配置项例如myMotherland China #数据库的配置
Spring.datasource.urljdbc:mysql://127.0.0.1:3306/库名
Spring.datasource.usernameroot
Spring.datasource.password123456
Spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver#用户自定义配置项
myMotherland China#用户自定义配置项
myMotherland China2.2、读取配置项
在项目中想要主动的读取配置文件中的内容可以使用Value注解来实现Value注解参数中使用${}的格式读取。
package com.example.demo;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;Controller
ResponseBody
public class TestController {Value(${myMotherland})//这里是通过依赖注入的方式将配置文件中的自定义信息注入到当前的属性中private String myMotherland;RequestMapping(/sayHi)public String sayHi(){return 我的祖国是myMotherland;}}properies配置文件结构清晰没有层级、各种缩进和空格格式的控制键和值的形式简单这种格式很适合初学者。不容易出错。但是这种格式的写法比较臃肿。还有一个问题就是properies格式的配置文件对中文的支持不是很好。 3、yml格式的配置文件
yml是YAML的缩写全称为Yet Another Markup Language意思为另一种标记语言。他对中文的支持很好 yml 是⼀个可读性⾼写法简单、易于理解它的语法和 JSON 语⾔类似。yml ⽀持更多的数据类型它可以简单表达清单数组、散列表标量等数据形态。它使⽤空⽩ 符号缩进和⼤量依赖外观的特⾊特别适合⽤来表达或编辑数据结构、各种配置⽂件等。yml ⽀持更多的编程语⾔它不⽌是 Java 中可以使⽤在 Golang、PHP、Python、Ruby、 JavaScript、Perl 中。 3.1、yml基本语法
yml是属性结构的配置文件它的基础语法是key:value注意key和value之间使用因为冒号加空格的方式组成的其中空格不能省略。下面我们来看一下设置端口号和数据库连接信息的代码
#设置端口号
server:port: 8081
#设置数据库连接
spring:datasource:url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncodingutf8username: rootpassword: 123456
3.2、使用yml配置对象
我们使用yml还可以配置对象
#自定义对象
student:id: 1name: 李四age: 20
1️⃣可以使用Value注解来获取对象中的属性的值。使用可以使用Controller注解将UserController类的对象存储到容器中。在将这个类创建成对象时通过Value注解将配置文件中student对象的名字赋值给当前类的属性然后调用初始化方法doPostConstruct完成对象的初始化。
package com.example.demo;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import javax.annotation.PostConstruct;Controller
public class UserController {Value(${student.name})private String name;PostConstructpublic void doPostConstruct(){//初始化方法System.out.println(name name);}
}2️⃣我们也可以使用ConfigurationProperties注解来读取配置文件中的对象并且与五大类注解搭配使用在User类中使用五大类注解中的一个的作用是保证ConfigurationProperties注解能够执行只有让User类和Spring Boot框架一起启动才能够将配置文件中的对象属性赋值给User类中的属性
package com.example.demo.model;import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;ConfigurationProperties(student)
Component
public class User {private int id;private String name;private int age;public int getId() {return id;}public void setId(int id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}Overridepublic String toString() {return User{ id id , name name \ , age age };}
}这里将user对象打印出来
package com.example.demo;import com.example.demo.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import javax.annotation.PostConstruct;Controller
public class UserController {Autowiredprivate User user;PostConstructpublic void doPostConstruct(){//初始化方法System.out.println(user.toString());}
}4、配置集合
配置文件也可以配置list集合如下所示
#配置集合
dbtypes://key值name://集合名字//集合属性- mysql- sqlserver- db2
或者使用行内写法
dbtypes: {name: [mysql,sqlserver,db2]}
这里读取集合和对象一样也是使用ConfigurationProperties注解来读取具体实现和读取对象一样先创建一个list类将集合中的属性设置成私有的然后使用get和set方法然后通过下面的程序将list对象赋值到当前类的属性上。
package com.example.demo;import com.example.demo.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import javax.annotation.PostConstruct;Controller
public class UserController {Autowiredprivate List list;PostConstructpublic void doPostConstruct(){//初始化方法System.out.println(list.toString());}
}