Spring Boot简单框架搭建

一枚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 {
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值