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>

原文地址:https://www.cnblogs.com/wnlsq/p/12227469.html

时间: 2024-08-07 14:36:00

SpringBoot入门知识的相关文章

SpringBoot 入门 Demo

SpringBoot   入门 Demo Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. 特点 1. 创建独立的Spring应用程序 2. 嵌入的Tomcat,无需部署WAR文件 3. 简化Maven配置

springboot入门之一:环境搭建(续)

在上篇博客中从springboot的入门到运行一个springboot项目进行了简单讲述,详情请查看"springboot入门之一".下面继续对springboot做讲述. 开发springboot测试类 在上篇博客中仅仅是把一个springboot环境的项目运行起来,但并没有进行实际的开发测试,下面进行开发测试,请看下面的类, package cn.com.my.study01.controller; import java.util.ArrayList; import java.u

ESB (Enterprise Service Bus)入门知识

本文主要介绍ESB相关的一些技术概念与术语,还有一些入门的需要了解的基础知识,并初步了解介绍一些ESB产品.由于本人刚接触ESB,所以将自己的学习内容与过程,记录下来!愿在这里与大家分享一下,共同进步与提高! [转载使用,请注明出处:http://blog.csdn.net/mahoking] EAI 企业应用集成(Enterprise Application Integration):是完成在组织内.外的各种异构系统.应用和数据源之间共享.交换信息.协作的途径,方法学,标准和技术. 所连接的应

债券入门知识

可参考此链接: http://www.jisilu.cn/topic/%E4%BC%81%E4%B8%9A%E5%80%BA%E6%85%A2%E8%B0%88 国债: 凭证式国债: 国家采取不印刷实物券,而用填制国库券收款凭证的方式发行的国债.它是以国债收款凭单的形式来作为债权证明,不可上市流通转让,从购买之日起计息.在持有期内,持券人如遇特殊情况需要握取现金,可以到购买网点提前兑取.提前兑取时,除偿还本金外,利息按实际持有天数及相应的利率档次计算.凭证式国债在银行柜台凭身份证购买,与银行定期

基金入门知识

1. 基金是什么? 基金就是代大家理财的一个产品.比如股票型基金,就是把大家的钱收集起来,由买股经验丰富的基金经理帮大家买股票. 2. 基金产品靠什么挣钱? 基金依靠用户买入和赎回基金份额时的手续费,还有交纳的管理费等挣钱.如果某基金经理非常牛B,给投资人带来了丰厚的回报,那么买这支产品的人就越来越多,这样基金产品就越来越赚钱.相反,如果基金产品投资管理不善,给投资人带来了损失,那么买这支产品的人就是越来越少,可用于投资的钱就是越来越少,进一步削弱提高收益的可能性.基金产品并不直接从投资行为中挣

移动H5开发入门知识,CSS的单位汇总与用法

说到css的单位,大家应该首先想到的是px,也就是像素,我们在网页布局中一般都是用px,但是近年来自适应网页布局越来越多,em和百分比也经常用到了.然后随着手机的流行,web app和hybrid app的开发,都用到了css3技术,在css3中,新增了许多单位,rem.vw和vh.vmin和vmax.ch和ex等等,那现在对这些单位分别做一下详细的介绍吧. 1.em 做前端的应该对em不陌生,不是什么罕见的单位,是相对单位,参考物是父元素的font-size,具有继承的特点.如果字体大小是16

requirejs入门知识整理

使用模块化开发处理的三大问题: 1.命名冲突:2.繁琐的文件依赖 3.实现异步非阻塞的文件加载,避免网页失去响应 模块化的设计使得JavaScript代码在需要访问“全局变量”的时候,都可以通过依赖关系,把这些“全局变量”作为参数传递到模块的实现体里,在实现中就避免了访问或者声明全局的变量或者函数,有效的避免大量而且复杂的命名空间管理. requirejs以一个相对于baseUrl的地址来加载所有的代码.如果用了data-main属性,则该路径就是baseUrl,baseUrl亦可通过requi

Unity入门知识

参考书:<Unity3D 游戏开发> scene图中按F键:放大,居中当前选中的物体 坐标轴:红-x轴,绿-y轴,蓝-z轴 逐帧运行程序: OnGUI:可以用来画界面 高级控件 or 低级控件? Label控件也可以贴图 只有脚本的公有变量才可以在编辑器中直接赋值.Texture.String等 游戏界面可以由若干个窗口组成,而每个窗口又由若干个视图组成.创建窗口时需要设定他的显示区域,在窗口中可以添加任意组件,前提是组件的显示区域必须在窗口当中,否则无法显示.另外,窗口中的所有控件都采用相对

MySQL入门知识

简单介绍下吧,MySQL应用的场景大多数互联网公司第一次卖身是卖个了sun好像是10亿,第二次是连同sun自己,以74亿美元被卖给了Orecle~后面MySQL原作者站出来说,MySQL会存在闭源风险,整了个MariaDB~我也是醉了,也不考虑下我们的痛苦!下面简要介绍下MySQL的入门知识. 一.MySQL有三种定义语言 DDL:定义语言,比如:创建一张表,定义表的属性如索引.宽位等待 DML:操作语言,增删查改 DCL:控制语言,比如限定那个账户只能通过那个IP登入,又比如那个账户能访问那些