赞
踩
(1)什么是Spring Boot ?
(2)Spring Boot 特点
(1)创建maven工程,不要使用骨架
(2)编写pom.xml文件,继承springboot父工程
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
</parent>
(3)设置jdk版本,添加启动器
<dependencies>
<!-- springboot的web启动器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
(4)创建启动类
package com.qfedu;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
(5)SpringBoot 启动器概述
所谓的springBoot 启动器其实就是一些 jar包的集合,SprigBoot一共提供 44 个启动器。例如:
spring-boot-starter-web:支持全栈式的 web 开发,包括了 tomcat 和 springMVC 等 jar
spring-boot-starter-jdbc:支持 spring 以 jdbc 方式操作数据库的 jar 包的集合
spring-boot-starter-redis:支持 redis 键值存储的数据库操作
banner.txt
放置在resources
目录下_ooOoo_ o8888888o 88" . "88 (| -_- |) O\ = /O ____/`---'\____ .' \\| |// `. / \\||| : |||// \ / _||||| -:- |||||- \ | | \\\ - /// | | | \_| ''\---/'' | | \ .-\__ `-` ___/-. / ___`. .' /--.--\ `. . __ ."" '< `.___\_<|>_/___.' >'"". | | : `- \`.;`\ _ /`;.`/ - ` : | | \ \ `-. \_ __\ /__ _/ .-` / / ======`-.____`-.___\_____/___.-`____.-'====== `=---=' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // 佛祖保佑 永不宕机 永无BUG //
(1)配置文件命名
(2)yml配置文件
- yml是 Spring Boot 中新增的一种配置文件格式。
- 特点:具备天然的树状结构
(3)配置文件示例:
server: port: 8090 #端口号 servlet: context-path: /springboot #项目名 spring: datasource: #数据库连接 driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/spring?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC username: root password: 123456 #配置mybatis mybatis: type-aliases-package: com.qfedu.pojo mapper-locations: classpath:mapper/*Mapper.xml #配置日志 logging: level: com.qfedu.aop: debug
(1)在pom中添加一个SpringBoot的构建的插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
(2)在maven面板视图中,选择“package”,在target中会产生xxx.jar包
(3)然后在cmd终端发布项目(jar包所在目录)
java -jar xxx.jar
SpringBoot配置主要靠java类和一些注解来达到和xml配置一样的效果,比较常用的注解有:
@Configuration
:声明一个类作为配置类,代替xml文件
@Bean
:声明在方法上,将方法的返回值加入Bean容器,代替<bean>
标签
使用全局配置文件:application.properties
,不用显式引用配置文件(不需要使用注解@PropertySource),便可以直接使用全局配置文件信息
配置数据源
@Configuration public class JdbcConfiguration { @Value("${jdbc.url}") String url; @Value("${jdbc.driverClassName}") String driverClassName; @Value("${jdbc.username}") String username; @Value("${jdbc.password}") String password; @Bean public DruidDataSource dataSource() { DruidDataSource dataSource = new DruidDataSource(); dataSource.setUrl(url); dataSource.setDriverClassName(driverClassName); dataSource.setUsername(username); dataSource.setPassword(password); return dataSource; } }
声明要注入的属性前缀,SpringBoot会自动把相关属性通过set方法注入到属性中
(从全局配置文件中读取:application.properties)(1)配置数据源 —— @Autowired注入
@Configuration public class JdbcConfiguration { @Autowired private DbProperties dbProperties; @Bean public DruidDataSource dataSource() { DruidDataSource dataSource = new DruidDataSource(); dataSource.setUrl(dbProperties.getUrl()); dataSource.setDriverClassName(dbProperties.getDriverClassName()); dataSource.setUsername(dbProperties.getUsername()); dataSource.setPassword(dbProperties.getPassword()); return dataSource; } }
(2)配置数据源 —— @Bean方法的参数注入
@Configuration
public class JdbcConfiguration {
@Bean
//会去Spring容器中找到一个同类型的bean,注入到参数中
public DruidDataSource dataSource(DbProperties dbProperties) {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(dbProperties.getUrl());
dataSource.setDriverClassName(dbProperties.getDriverClassName());
dataSource.setUsername(dbProperties.getUsername());
dataSource.setPassword(dbProperties.getPassword());
return dataSource;
}
}
声明要注入的属性前缀,SpringBoot会自动把相关属性通过set方法注入到DataSource属性中
@Configuration
public class JdbcConfiguration {
@Bean
// 声明要注入的属性前缀,SpringBoot会自动把相关属性通过set方法注入到DataSource中
@ConfigurationProperties(prefix = "jdbc")
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
return dataSource;
}
}
(1)什么是Thymeleaf
(2)为什么要使用Thymeleaf
(3)thymeleaf的启动器
<!-- thymeleaf的启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
(4)thymeleaf默认配置文件
导入相关启动器后,可以直接查询 XXXAutoConfiguration ,其中必定含有XXXProperties类,其里面含有相关默认配置
hymeleaf也会根据前缀和后缀来确定模板文件的位置:
classpath:/templates/
.html
Thymelaef特点:
语法:通过他特定标签操作html属性
目录位置:src/main/resources/templates
后缀名:.html
注意,把html 的名称空间,改成:xmlns:th="http://www.thymeleaf.org"
会有语法提示
(1)变量输出
<span th:text="Hello"></span>
<hr/>
<span th:text="${msg} "></span>
<input type="text" name="username" th:value="${msg}"/>
(2)日期和字符串处理
Thymeleaf 内置对象
注意语法:
调用内置对象一定要用#
大部分的内置对象都以 s 结尾 strings、numbers、dates
${}表达式一定是在""
中生效的
日期处理:
<input type="date" name="birth" th:value="${#dates.format(birth,'yyyy-MM-dd')}"/>
字符串处理:
<input type="text" name="msg" th:value="${#strings.substring(msg,0,6)}"/>
(3)条件判断
<span th:if="${sex=='男'}">
性别:男
</span>
(4)单选框按钮选中判断
性别:<input type="radio" name="sex" value="1" th:checked="${user.sex==1}"/>男
<input type="radio" name="sex" value="0" th:checked="${user.sex==0}">女</br>
(5)迭代遍历
<tr th:each="user : ${users}">
<td th:text="${user.id}"></td>
<td th:text="${user.userName}"></td>
<td th:text="${user.password}"></td>
<td th:text="${user.sex==1?'男':'女'}"></td>
<td th:text="${#dates.format(user.birth,'yyyy-MM-dd')}"></td>
<td>
<button>删除</button>
<a th:href="@{/user/findOne/{id}(id=${user.id})}"><button>编辑</button></a>
</td>
</tr>
(5)URL表达式
/
:相当于当前项目的跟~/
:相当于服务器的跟(1)ThymeleafViewResolver视图解析器
ThymeleafViewResolver
SpringMVC的视图解析器
ThymeleafViewResolver
的优先级会高于SpringMVC的视图解析器
(查看ThymeleafAutoConfiguration源码可知)(2)Spring Boot 使用的视图解析器
templates文件夹
下的资源不会访问Spring Boot的静态资源.html
结尾SpringMVC的视图解析器后缀不是 —— .html,默认templates文件夹中的页面后缀是.html,且名称相同时,templates文件夹中的页面优先级高(引用Thymeleaf 启动器后)
只要存在Thymeleaf相关依赖,若是视图名称和templates文件夹中的页面名称相同,返回扫描templates文件夹中的页面就会优于静态资源下的视图页面(就算在配置文件中指定返回的后缀(spring.mvc.view.suffix=),SpringMVC视图解析器也不会生效)
若存在Thymeleaf相关依赖,想要实现页面跳转(跳转到静态资源包下),可以直接return /页面.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。