SpringBoot入门知识

Posted wnlsq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot入门知识相关的知识,希望对你有一定的参考价值。

SpringBoot简介

Spring Boot 是由 Pivotal[?p?v?tl]团队提供的全新框架,其设计目的是用来简化新 Spring
应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再
需要定义样板化的配置。通过这种方式,Spring Boot 致力于在蓬勃发展的快速应用开发领域
(rapid application development)成为领导者。
简单来说,SpringBoot 可以简化 Spring 应用程序的开发,使我们不再需要 Spring 配置文
件及 web.xml 文件

 

SpringBoot的工程创建(在idea中创建)

添加依赖

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.6.RELEASE</version>
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
   <!-- 数据库连接-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.34</version>
    </dependency>
    <!-- 引入依赖-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.1.2</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

编写Controller类

@Controller
public class HelloController {
    @ResponseBody
    @RequestMapping("/")
    String home() {
        return "Hello World!";
    }
}

编写配置(application.propertise)

#mysql连接
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://localhost:3306/myschool
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#oracle连接
spring.datasource.username=system
spring.datasource.password=root
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:orcl
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver

application属性文件中常用的配置

Server这块常用的配置(tomcat的相关信息)
server.port ---------服务器端口
server.servlet.context-path  ---------应用上下文路径
server.tomcat.uri-encoding=UTF-8 ----读取属性配置文件,项目文件编码成功设置,页面还乱码时候设置
Tomcat这块常用的配置
server.tomcat.accesslog.directory ----创建日志文件的目录
server.tomcat.accesslog.enabled  ---------是否开启访问日志(默认:false)
server.tomcat.accesslog.pattern  ---------访问日志的格式(默认common)
server.tomcat.accesslog.prefix ---------日志名前缀(默认:access_log)
server.tomcat.accesslog.suffix ---------日志名后缀(默认:.log)
server.tomcat.max-http-header-sizeHttp ---------消息头最大字节数(默认:0)
server.tomcat.uri-encoding  ---------用来解码 URI 的字符编码
DataSource这块常用的配置
spring.datasource.username   ----数据库的登录用户名。
spring.datasource.password   ---数据库的登录密码。
spring.datasource.url         ----数据库的 JDBC URL。
spring.datasource.driver-class-name   ----JDBC 驱动的全限定类名。默认根据 URL 自动检测。

spring.datasource.name   ---数据源的名称。
spring.datasource.pool-name    ----连接池名称。
spring.datasource.max-active    ----连接池中的最大活跃连接数。
spring.datasource.connection-timeout  ----连接超时(单位毫秒)
spring.datasource.max-idle   -----连接池中的最大空闲连接数。
Redis这块常用的配置
spring.redis.database        ----连接工厂使用的数据库索引。(默认值: 0 。)
spring.redis.host         ----Redis服务器主机地址。(默认值: localhost 。)
spring.redis.password        ----Redis服务器的登录密码。
spring.redis.port         ----Redis服务器端口。(默认值: 6379 。)
spring.redis.timeout        ----连接超时时间,单位为秒。(默认值: 0 。)
spring.redis.pool.max-active ---连接池在指定时间里能分配的最大连接数。负数表示无限制。默认值: 8
spring.redis.pool.max-idle  ---连接池里的最大空闲连接数。负数表示空闲连接数可以是无限大。默认值:8

springboot注解版

@Mapper  //指定这是一个操作数据库的mapper
public interface SubjectMapper {
    @Select("select * from Subject where subjectNo=#{subjectNo}")
    public Subject getSubjectById(Integer subjectNo);
}

配置热部署

    目前的Springboot,当发生了任何修改之后,必须关闭后再启动Application类才能够生效,显得略微麻烦。 Springboot提供了热部署的方式,当发现任何类发生了改变,马上通过JVM类加载的方式,加载最新的类到虚拟机中。 这样就不需要重新启动也能看到修改后的效果了。

 

<!-- 配置springBoot项目的热部署启动 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>

<!--之后在pom.xml的插件中加入下图红框中所示的配置,用于开启热部署-->
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
            </configuration>
        </plugin>
    </plugins>
</build>

 

Thymeleaf入门

导入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
注:可切换thymeleaf版本
<properties>
   <thymeleaf.version>3.0.11.RELEASE</thymeleaf.version>
   <thymeleaf-layout-dialect.version>2.1.1</thymeleaf-layout-dialect.version>
</properties>

html页面导入

<html lang="en" xmlns:th="http://www.thymeleaf.org">

常用标签如下:

标签

说明

th:insert

th:replace

Html代码片段包含,类似于jsp:include

th:each

遍历,类似于c:forEach

th:if

th:swtich

th:case

条件判断:类似于c:if

th:object

th:with

声明变量,类似于c:set

th:value

th:href

th:src

修改指定的属性默认值,如th:href修改a标签中的href属性。

th:src修改script中的src属性。

th:text

th:utext

修改标签体的内容,th:text会进行转义字符串,如<th:text=”${name}”/>如果取出的值中的<h1>标签,那么在页面上展示的效果是<h1>

th:utext才会解析成一级标题

th:fragment

声明HTML代码片段。用于重用页面

 

 

 

表达式

说明

 

${...}

获取变量值

 

SelectionVariable Expressions: *{...}

选择表达式,和${}功能是一样。配置th:object

<p th:object="${user}">
 ssss:<span th:text="*{id}"></span>- <span th:text="*{name}"></span>
</p>

 

Link URL Expressions: @{...}

 

定义URL链接。

如<a href="#" th:href="@{/order/details(orderId=${o.id})}">view</a> 

 

Message Expressions: #{...}

获取国际化内容。

 

Fragment Expressions: ~{...}

片段引用表达式

如<div th:insert="~{commons :: main}"></div>

数学运算

and,or

 

 

! , not

 

比较运算

>,<,>=,<= ( gt, lt, ge, le )

 

 

==, != , ( eq, ne )

 

条件运算(三元运算)

(if) ? (then)

(if) ? (then) : (else)

(value) ?: (defaultvalue)

 

示例:

在Controller中添加一个请求
@RequestMapping("/")
public String testThymeLeaf(Model model) {
    model.addAttribute("uname", "我的名字是<h1>tina</h1>");
    model.addAttribute("list", gradeService.getListGrade());
    return "success";
}
创建success.html页面,显示数据
<!DOCTYPE html >
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="">
    <meta name="author" content="">
    <title>test thymeleaf</title>
</head>

<body class="text-center">
<img class="mb-4" th:src="@{asserts/img/bootstrap-solid.svg}" alt="" width="72" height="72">
<!--里面的h1会显示到页面,不会被解析成h1标签-->
<p th:text="${uname}"></p>
<!--里面的h1会被解析成h1标签,不会看见h1几个字-->
<p th:utext="${uname}"></p>
<table>
    <tr>
        <th>部门编码</th>
        <th>部门名称</th>
        <th>操作</th>
    </tr>
    <tr th:each="dept:${listDept}">
        <td>[[${dept.id}]]</td>
        <td th:text="${dept.dname}"></td>
        <td >
<!-- @{/del(id=value,name=value)}相当于 /del?id=value&name=value-->
            <a href="#" th:href="@{/del(id=${dept.id})}">删除</a>
        </td>
    </tr>
</table>
</body>
</html>

以上是关于SpringBoot入门知识的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot启动报错“Consider defining a bean of type ‘xxx.mapper.UserMapper‘ in your configuration.“(代码片段

全栈编程系列SpringBoot整合Shiro(含KickoutSessionControlFilter并发在线人数控制以及不生效问题配置启动异常No SecurityManager...)(代码片段

SpringBoot中表单提交报错“Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported“(代码片段

android小知识点代码片段

Spring boot:thymeleaf 没有正确渲染片段

推荐net开发cad入门阅读代码片段