SpringBoot
概述
SpringBoot是搭建spring应用的脚手架,可以迅速的搭建一个spring应用,是一个工具,而非框架。
解决问题:
复杂的配置
混乱的依赖管理
特点
- 快速创建独立的Spring应用。
- 提供固定的启动器依赖(启动器即Spring Boot提供的一个jar包)去简化组件配置,通过自己设置参数(.properties或.yml的配置文件),实现开箱即用(即快速使用)的效果。
- 只要你导入了某一个框架的启动器,那么该框架对应的依赖会全部自动导入
- 提供了一些大型项目中常见的非功能性特性,如内嵌服务器(如tomcat、jetty、undertow)、安全、指标,健康检测、外部化配置等。
搭建测试工程
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--1. 凡是springboot项目都必须要继承一个父模块-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- Generated by https://start.springboot.io -->
<!-- 优质的 spring/boot/data/security/cloud 框架中文文档尽在 => https://springdoc.cn -->
<groupId>com.yxh</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>demo</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<!-- 2. 以后你需要使用哪个框架,那么就导入对应框架的启动器即可。
比如:springmvc - starter-web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
启动类
package com.yxh.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
// //表明是一个springboot应用
/*
@SpringBootApplication这个注解的本质是有以下三个注解:
1.@Configuration【表示该类是一个配置类】
2.@EnableAutoConfiguration【开启自动装配, 根据导入的依赖来完成该框架的自动配置。】
===springboot启动时会检测你导入了哪些框架的jar包,那么springboot就会给你完成哪些配置;例如springmvc(核心控制器,处理器映射器,处理器适配器,视图解析器的对象的创建)===
3.@ComponentScan【默认扫描SpringbootNewApplication所在包以及子包下面所有使用了spring注解的类】
===spring注解
ioc:@Controller @Service @Component @Repository
DI:@Value @Autowired @Qualier
AOP:@Transational @Before @After===
*/
//springboot启动类
@SpringBootApplication
public class DemoApplication {
//启动spring的容器,加载当前类上面的@SpringBootApplication注解
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
配置文件
application.properties
## 端口号
server.port=9090
## 项目访问路径
server.servlet.context-path=/test
springboot在启动完成自动配置的时候会去读取application.properties文件,根据key值读取相应的value
yml配置
- YML文件格式是YAML(YAML Aint Markup Language)编写的文件格式,YAML是一种层级树键值对格式文件,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,比如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。YML文件是以数据为核心的,比传统的xml方式更加简洁。
- YML文件的扩展名可以使用.yml或者.yaml。
当application.properties与application.yml两个文件同时存在时,当属性名相同时application.properties中的属性会 覆盖 application.yml中的属性。
加载顺序:
1、application.yml
2、application.properties
application.yml
server:
port: 9090
servlet:
context-path: /test
## 如果需要自定义一些东西,只能写在application.yml或者application.properties中
## 自己定义的属性和值,需要自己去读取
student:
name: 张三
age: 18
sex: 女
读取自定义配置
@Data
//spring注解 创建对象
@Component
//spring 要把数据给到实体类的前提是:1.属性名要对上,2.属性必须要有setter方法
@ConfigurationProperties(prefix="student")
public class User implements Serializable{
private String name;
private String sex;
private Integer age;
}
或者
@Data
@Component
public class Student implements Serializable{
@Value("${student.name}")
private String name;
@Value("${student.sex}")
private String sex;
@Value("${student.age}")
private Integer age;
}
!!不支持注入复杂数据类型
集成mybatis
1.导入依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.8.RELEASE</version>
</parent>
<dependencies>
<!--springmvc-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
<!--myabtis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
2.配置yml
server:
port: 8081
servlet:
context-path: /test
## 配置数据源
spring:
datasource:
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/medical?useSSL=false
## 映射文件/包名
mybatis:
mapper-locations:
- classpath:mapper/*.xml
type-aliases-package: com.yxh.springboot_create_ssm.entity
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
## 记录日志
3.编写实体类
4.编写mapper
接口上加@Mapper或者在Application.java上加@MapperScan(basePackages = "com.yxh.springboot.dao")
标签:SpringBoot,spring,boot,springframework,application,org,yml From: https://www.cnblogs.com/YxinHaaa/p/17533301.html