一枚java小学生,只是为了整理与分享,如有指点,欢迎联系
SpringBoot
maven的聚合项目
maven 项目的三种打包方式:war pom jar
<dependencyManagement ></dependencyManagement>
- 依赖管理 子模块引用时不需要规定版本
- 如果子模块写了版本,那么相当于覆盖操作
父项目中的文件子类如果想引用的话,可以在子类项目的依赖中引用
Spring Boot
idea软件在创建spring boot项目的时候不能有大写字母
springboot注解:
@SpringBootApplication 包含三个注解:
- SpringBootConfiguration
- EnableAutoConfiguration
- ComponentScan
启动时的线条字:banner.txt
spring boot配置文件(两种):
application.properties
application.yml
两者二选其一就行
spring boot 配置mybatis步骤
添加依赖(导包)
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.28</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
application.yml文件:
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://localhost:3306/hello2?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
mybatis:
type-aliases-package: 成员类包名
mapper-locations: classpath:mapper/*Mapper.xml
相同的缩进代表同一级别
key:
value1:
value2:
或者
my:
city:[beijing,xxian,tiaanjing,biejing]
dao层注解
@Mapper
spring boot整合jsp
加依赖
修改yml文件
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://localhost:3306/spring?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
mvc:
view:
prefix: /WEB-INF/jsp/
suffix: .jsp
mybatis:
type-aliases-package: 成员类包名
mapper-locations: classpath:mapper/*Mapper.xml
Spring boot 整合SSM
依赖
<!-- 添加servlet依赖模块 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- 添加jstl标签库依赖模块 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<!--添加tomcat依赖模块.-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!-- 使用jsp引擎,springboot内置tomcat没有此依赖 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
yml
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:mysql://localhost:3306/spring?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
mvc:
view:
prefix: /WEB-INF/jsp/
suffix: .jsp
thymeleaf:
cache: false
# 关闭缓存
mybatis:
type-aliases-package: 成员类包名
mapper-locations: classpath:mapper/*Mapper.xml
Spring Boot 整合Thymeleaf
加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
yml设置
spring
thymeleaf:
cache: false #开发是关闭缓存,否则无法实时看到页面效果
mode: LEGACYHTML5 #使用的是非严格的html标准
encoding: UTF-8
h5的网页中声明
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">
使用tjymeleaf模板标签进行操作
- th:each=“user:${user}”
- th:href="@{/list/details(id=${user.id})}
- 生成:http://domain.org/context/list/details?id=1
- th:href="|/list/detail?l=${lid}|"
- 生成:http://domain.org/list/details?id=1
- th:href="@{’/list/details/’+${user.id}}
- 生成 http://domain.org/context/list/details/1
- th:text="${data}
- th:text="'my name is '+${user.name}"
- th:with,定义变量
- th:with=“isEven=${prodStat.count}%2==0”,定义多个变量可以用逗号分隔
- th:attr,设置标签属性
- 多个属性可以用逗号分隔,比如th:attr=“src=@{/image/aa.jpg},title=#{logo}”
- th:switch,th:case,选择语句
- th:case="*"表示default case
<div th:switch="${user.role}">
<p th:case="'admin'">User is an administrator</p>
<p th:case="#{roles.manager}">User is a manager</p>
<p th:case="*">User is some other thing</p>
</div>
- th:object 获取model中的对象
<form action="#" th:action="@{/user/save}" th:object="${user}">
- th:field 获取表单中绑定对象的字段
<input type="text" th:field="*{nickname}" /> <br/>
- th:errors 显示页面中包含的错误
<li th:errors="*{username}"/> 显示username字段上的错误
<li th:errors="*" />显示所有错误
spring 使用thymeleaf
bean配置xml三步骤
-
模板引擎
-
<!-- 配置模板引擎,并启用Spring的EL表达式--> <bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine"> <property name="templateResolver" ref="templateResolver"/> <property name="enableSpringELCompiler"/> </bean>
-
模板解析器
-
<!-- 配置thymeleaf的模板解析器 --> <bean id="templateResolver" class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver"> <property name="prefix" value="/WEB-INF/views/"/> <property name="suffix" value=".html"/> <property name="templateMode" value="HTML"/> <property name="cacheable" /> </bean>
-
模板的视图解析器
-
<!-- thymeleaf视图解析器 --> <bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver"> <property name="templateEngine" ref="templateEngine"/> <property name="characterEncoding" value="utf-8"/> </bean>
Spring Boot 整合Spring JPA
添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.28</version>
</dependency>
添加配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/jpa?useSSL=true&serverTimezone=UTC&characterEncoding=UTF-8
#jpa connect mysql
spring.jpa.database=mysql
#jpa show sql
spring.jpa.show-sql=true
#jpa format sql
spring.jpa.properties.hibernate.format_sql=true
#create-drop create update validate
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect =org.hibernate.dialect.MySQL5Dialect
pojo成员类
package com.qfedu.pojo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import javax.persistence.*;
@Entity
@Table(name = "user_name")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int uid;
@Column(unique = true, nullable = false, length = 20)
private String userName;
@Column(nullable = false)
private String password;
private String addr;
}
Dao层
package com.qfedu.dao;
import com.qfedu.pojo.User;
import org.springframework.data.jpa.repository.JpaRepository;
public interface IUserDao extends JpaRepository<User,Integer> {
}
Spring Boot整合Swagger
依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
配置applicaton.properties
swagger.basePackage=com.qfedu
swagger.title=用户管理
swagger.description=基于api的用户管理模型
swagger.contact=左左
swagger.version=v1.0
swagger.url=www.zuozuo.com
工具类
package com.qfedu.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig implements WebMvcConfigurer {
@Value("${swagger.basePackage}")
private String basePackage;// 扫描controler的包名
@Value("${swagger.title}")
private String title;// 在线文档的标题
@Value("${swagger.description}")
private String description;// 在线文档的描述
@Value("${swagger.contact}")
private String contact;// 联系人
@Value("${swagger.version}")
private String version;// 文档版本
@Value("${swagger.url}")
private String url;// URL
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage(basePackage))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title(title)
.description(description)
.termsOfServiceUrl(url)
.version(version)
.contact(new Contact(contact, url, url))
.build();
}
}
成员类
@Entity
@Table
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(value = "用户对象",description = "对应用户表")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int uid;
@Column(unique = true, nullable = false, length = 20)
@ApiModelProperty(name="userName",example = "zhangsan")
private String userName;
@Column(nullable = false)
private String password;
private String addr;
}
- 在想要被整合的类上添加注解@Api(tags=“控制器的名称”)
- 想要提供注释的方法,在方法上添加@ApoOperation(value=“方法名称”)
- 想要提供注释的参数使用,@ApiParam(name=“参数名称”,value=“默认数值”,readOnly=“true/flase”)
@GetMapping("/Users")
@ApiOperation(value="获取所有的用户对象的列表")
public List<User> getAllUsers(){
return userService.getUserAll();
}
@GetMapping("/Users/{uid}")
public User getUserByUid(@ApiParam(name = "uid",value = "1",readOnly = true) @PathVariable int uid){
return userService.getUserByUid(uid);
}
Spring Boot整合测试
依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
加入junit测试依赖才可以使用
@RunWith(SpringRunner.class)
@SpringBootTest
public class TestUserDao {
}