1.引入依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
2.主程序类
/**
* 主程序类
* @SpringBootApplication:这是一个SpringBoot应用
*/
@SpringBootApplication
public class MainApplication {
public static void main(String[] args) {
SpringApplication.run(MainApplication.class,args);
}
}
2.1 SpringBootApplication注解
SpringBootApplication可由下面下面三个注解代替
1.@SpringBootConfiguration:---->@Configuration
标注这个类是一个配置类;
它继承自@Configuration注解;
它与@Configuration注解的功能一致;
只不过@SpringBootConfiguration是springboot的注解,而@Configuration是spring的注解。
标注当前类是配置类,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名。
2.@EnableAutoConfiguration
@Import(AutoConfigurationImportSelector.class),
借助AutoConfigurationImportSelector,@EnableAutoConfiguration可以帮助SpringBoot
应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器。
自动配置这方面后期在研究研究
3.@ComponentScan
组件扫描,如果没有配置value则默认扫描 XxxApplication.java所在目录以及其子目录
3.1 value
指定要扫描的包路径
@ComponentScan(value = "com.zx.controller")
3.2 excludeFilters(排除规则)
excludeFilters=Filter[] 指定包扫描的时候根据规则指定要排除的组件
3.3 includeFilters(包含规则)
includeFilters =Filter[] 指定包扫描的时候根据规则指定要包含的组件.
注意:要设置useDefaultFilters = false(系统默认为true,需要手动设置) includeFilters包含过滤规则才会生效。
3.Controller类
从HTTP请求中获取信息,提取参数,并将其分发给不同的处理服务(service层),并向前端返回service层处理后的数据(JSON数据或者ModelAndView对象)。
@RestController
public class HelloController {
@RequestMapping("/hello")
public String handle01(){
return "Hello, Spring Boot 2!";
}
}
3.1@RestController
等同于@Controller + @ResponseBody
3.1.1@Controller
标注这是一个控制类,将类映射为Controller层,添加到IoC容器中
3.1.2@ResponseBody
@ResponseBody表示方法的返回值直接以指定的格式写入Http response body中,
而不是解析为跳转路径。该注解标注的返回类型都是数值型(字符串或json格式数据)
4.运行main,默认url:localhost:8080
5.配置相关
springboot项目创建完成后在resources目录下会自动生成名为application.properties的配置文件我们也可以自己建立名为application.yml/yaml的文件,本质上是相同的只是语法略有不同
`application.properties`
语法结构: key=value
`application.yml`
语法结构: key:空格 value
application.properties配置实例
#配置访问端口号
server.port=8081
#描述数据源
spring.datasource.url=jdbc:mysql://localhost:3306/tanglong?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=Asia
spring.datasource.username=root
spring.datasource.password=0000
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
spring.datasource.type = com.alibaba.druid.pool.DruidDataSource
application.yaml配置实例
spring:
application:
#1.服务名称信息
name: mimi
#2.配置启动banner的编码和文字
banner:
charset: UTF-8
location: classpath:banner.txt
#3.spring:datasource下的)配置数据库
datasource:
#1.配置数据库连接池(Druid,),HikariCP 是默认的
type: com.alibaba.druid.pool.DruidDataSource
#2.数据库的地址
url: jdbc:mysql://localhost:3306/demo?characterEncoding=UTF-8&serverTimezone=GMT%2B8
#3.配置数据库驱动,jdbc
driver-class-name: com.mysql.cj.jdbc.Driver
#4.配置数据库连接的账号
username: root
#5.配置数据库连接的密码
password: 123456
#4.(spring:mvc下的)关于springmvc的设置
mvc:
#1.静态资源的过滤规则(在静态资源目录下,只有以/resources/开头的才能显示,不然不能显示)
static-path-pattern: /resources/**
#5.(spring:resources下的)设置静态资源的路径(默认的是classpath:/static,classpath:/public,classpath:/resources,classpath:/META-INF/resource)
resources:
static-locations: ["classpath:/static/", "classpath:/public/","classpath:/mapper/"]
#6.thymeleaf的模板配置
thymeleaf:
prefix: classpath:/templates
mode: HTML
cache: false
encoding: UTF-8
# 新版本不支持content-type: text/html,故新写法
servlet:
content-type: text/html
优先级1:项目路径下的config文件夹配置文件
优先级2:项目路径下配置文件
优先级3:资源路径下的config文件夹配置文件
优先级4:资源路径下配置文件
默认生成的配置文件优先级最低
<!--导入配置文件处理器,配置文件进行绑定就会有提示-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
标签:Springboot,spring,配置,classpath,HelloWorld,application,datasource,注解
From: https://www.cnblogs.com/ysbzczreo/p/17314874.html