Spring-boot的简单实例

Spring-boot

一. 第一个Spring-boot的应用

1.1 maven配置

​ 在maven文件中加入如下的依赖:


  org.springframework.boot
  spring-boot-starter-parent
  2.1.6.RELEASE



  
    org.springframework.boot
    spring-boot-starter-web
  

1.2 编写主配置文件

​ spring-boot的主配置文件名字按照约定叫application.yml或者application.properties,推荐使用application.yml,文件的内容如下:

server:
  port: 8080

spring:
  application:
    name: first-spring-boot

1.3 编写入口程序

@SpringBootApplication
public class FirstBootApplication {

    public static void main( String[] args ) {
        SpringApplication.run(FirstBootApplication.class, args);
    }
}

​ spring-boot的启动类上必须要加上@SpringBootApplication这个注解。

1.4 编写Controller

@RestController
@RequestMapping("first")
public class FirstController {

    @RequestMapping
    public Object print() {
        return Arrays.asList("hello", "world");
    }
}

1.5 测试

​ 启动主程序,然后在浏览器中输入:http://localhost:8080/first

二. banner的设置

​ 在spring-boot应用启动的时候,会出现一个很大的“Spring”字样,那么我们如何修改呢?

​ 在resources资源文件下创建一个名为banner.txt的文件,然后在这个文件中去定义我们自己想要的内容。目前网上有很多可以定制各种字样的网站。

三. Logback

​ 日志任何一个项目都必须要存在的,它可以记录我们的很多信息 ,例如报错信息,访问信息等,方便我们进行系统的调试和数据的分析,那么我们就得选择一个好的日志框架。我们这节主要讲解Logback这个日志框架,它的执行速度上比Log4j可以快上最高10倍以上。

​ 使用Logback我们首先得定义名为logback-spring.xml文件,文件的内容如下:





 	
	
		   
			
      		%d{yyyy-MM-dd HH:mm:ss.SSS} -- %-4relative %-5level %logger{32} %thread -- %msg%n  
			utf-8 
    	
	
	
    
    
        
        
            
            D:/logs/logback.%d{yyyy-MM-dd}.%i.log
            
            30
            
            20MB
            
            400MB
        
        
            
            %d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %thread -- %msg%n
            utf-8 
        
    

    
    
        
           
         
    


%d: 日期转换,花括号中指定日期的格式。

%-4relative: 该条日志输出的时间,这个时间是相对于服务器启动到打印出这条日志的相对时间,4表示时间占用的宽度。

%-5level: 日志的级别,日志总共5个级别,分别是debug,info,warn,error,fatal,从左往右日志级别越高,5表示日志级别占用的字符宽度。

%thread:该日志所属的线程。

%msg:日志信息。

%logger{32}:输出该日志信息的类,32表示包的层级。

%n: 换行。

四. yaml语法

4.1基本语法

​ k:(空格)v: 表示一对键值对,空格是必须的。

​ 以空格的缩进控制层级关系,空多少个格子没有特定的要求,只要左端对齐,都是同一级的数据。

spring:
	datasource:
		username: root
		password: 123456

4.2 值的写法

A. 字面量:普通的值(数字,字符串,布尔值)

person:
	name: zhangsan
	male: false
	age: 20

B. 数组或者集合(类似于java中的List、Set)

pets:`
	- cat
	- dog
	- pig

五. thymeleaf模板引擎

​ Thymeleaf是面向Web和独立环境的现代服务器端Java模板引擎,能够处理HTML, XML, JavaScript, CSS甚至纯文本。Thymeleaf的主要目标是提供一个优雅和高度可维护的创建模板的方式。为了实现这一点,它建立在自然模板的概念上,将其逻辑注入到模板文件中,不会影响模板被用作设计原型。这改善了设计的沟通,弥合了设计和开发团队之间的差距。Thymeleaf也从一开始就设计了Web标准 - 特别是HTML5 - 允许您创建完全验证的模板,如果这是您需要的。下面我们就开始学习spring-boot是如何整合thymeleaf.

5.1 配置依赖


  org.thymeleaf
  thymeleaf
  3.0.11.RELEASE


  org.thymeleaf
  thymeleaf-spring5
  3.0.11.RELEASE

5.2 application.yml配置

spring:
	resources:
		#静态资源的存放位置,名字也可以叫/public
		static-locations: classpath:/static/
  	thymeleaf:
    	enabled: true  #是否使用thymeleaf模板引擎
    	cache: false   #是否缓存,在开发阶段设置false, 生产上为true
		encoding: utf-8
    	mode: html
	    prefix: classpath:/templates/  #模板存放的位置
	    suffix: .html  #后缀

5.3 thymeleaf的用法

A. 引入命名空间


B. 资源引入与普通链接

th:src="@{}"



th:href="@{}"


百度

C. 普通取值


D. 字符串拼接



E. 链接取值

删除  
删除
删除

F. 条件判断

hello 
hello

G. 其他形式的条件判断

if-then


if-then-else


if-else

 

H. 等值判断比较

超级管理员

普通用户

其他用户

I. 循环遍历

ID 用户名

其中u为每次遍历的数据,stat为状态,状态总共有以下几种方式:

状态码 描述信息
first 是否为第一条数据
last 是否为最后一条数据
even 是否为偶数条数据
odd 是否为奇数条数据
index 数据的索引
count 数据是第几条
size 遍历的数据的总量
current 当前遍历的数据

J. map

----

K. 模板表达式

​ thymeleaf提供了丰富的模板表达式,而且有很多的方法用以使用,主要包括以下模板表达式:

  1. #lists
  • ${#lists.size() }
  • ${#lists.isEmpty()}
  • ${#lists.contains()}
  1. #maps
  • ${#maps.size()}
  • ${#maps.isEmpty()}
  • ${#maps.containsKey()}
  • ${#maps.containsValue()}

3)#strings

  • ${#strings.isEmpty(name)}

  • ${#strings.contains(name,‘ez’)}

  • ${#strings.containsIgnoreCase(name,‘ez’)}

  • ${#strings.startsWith(name,‘Don’)}

  • ${#strings.endsWith(name,endingFragment)}

  • ${#strings.indexOf(name,frag)}

  • ${#strings.substring(name,3,5)}

  • ${#strings.replace(name,‘las’,‘ler’)}

  • ${#strings.listSplit(namesStr,’,’)}

  • ${#strings.trim(str)}

  • ${#strings.equals(str)}

  • ${#strings.equalsIgnoreCase(str)}

  • ${#strings.prepend(str,prefix)}

  • ${#strings.append(str,suffix)}

  • ${#strings.toUpperCase(name)}

  • ${#strings.toLowerCase(name)}

  1. #dates
  • ${#dates.format()}

六. spring-boot与mybatis的整合

6.1 配置依赖

 

   com.alibaba
   druid-spring-boot-starter
   1.1.17



   org.mybatis.generator
   mybatis-generator-core
   1.3.7



   com.github.pagehelper
   pagehelper-spring-boot-starter
   1.2.12



   tk.mybatis
   mapper
   4.1.5



   tk.mybatis
   mapper-spring-boot-starter
   2.1.5

6.2 代码自动生成配置

6.2.1 插件配置


  org.mybatis.generator
  mybatis-generator-maven-plugin
  1.3.7
  
    
       Generate MyBatis Artifacts
       
          generate
       
    
  
  
     
        org.mybatis.generator
        mybatis-generator-core
        1.3.7
     
     
        mysql
        mysql-connector-java
        8.0.16
     
  
  

     src/main/resources/mybatis-generator-config.xml
     true
  

6.2.1 配置文件编写

jdbc.properties,该文件与application.yml并不同,它仅仅是用于mybatis生成代码用。

mysql.url=jdbc:mysql://localhost:3306/qf?useSSL=false&serverTimezone=UTC
mysql.driver=com.mysql.cj.jdbc.Driver
mysql.username=root
mysql.password=123456

mybatis-generator-config.xml




    
    

    

    

        
        
        
        
        
        

        
        
        
        

        
        
            
             
        

        
        
        

        
        
            
            
        

        
        
            
            

            
            

            
            
        

        
        
            
            
        


        
        
            
            

            
        

        
        

            
            

            
            

            
            
            
        

6.2.3 执行生成代码

Spring-boot的简单实例_第1张图片

6.3 分页插件的使用

6.3.1 application.yml文件的配置
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/qf?useSSL=false&serverTimezone=UTC
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
    druid:
      initial-size: 5
      max-active: 8
      min-idle: 2
      validation-query: 'select 1'
      test-on-borrow: false
      test-on-return: false
      test-while-idle: true
      # psCache, 缓存preparedStatement, 对支持游标的数据库性能有巨大的提升,oracle开启,mysql建议关闭
      pool-prepared-statements: false
      # psCache开启的时候有效
      max-open-prepared-statements: 100
      # 一个连接在被驱逐出连接池的时候,在连接池中最小的空闲时间,单位为毫秒
      min-evictable-idle-time-millis: 30000
      # 距离上次释放空闲连接的时间间隔
      time-between-eviction-runs-millis: 30000
pagehelper:
  dialect: mysql  #配置数据库的方言
  # 分页合理化参数,默认值为false。当该参数设置为 true 时,pageNum<=0 时会查询第一页, pageNum>pages(超过总数时),会查询最后一页
  reasonable: true
  # 支持通过 Mapper 接口参数来传递分页参数
  support-methods-arguments: true
mybatis:
  mapper-locations: classpath:/mybatis.mapper/*.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
6.3.2 通用接口的编写
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;

public interface MyMapper extends Mapper, MySqlMapper {
}
6.3.3 接口的编写
import com.github.pagehelper.Page;
import com.qf.pojo.MyUser;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;

@Mapper
public interface MyUserMapper extends MyMapper {

    List selectAll();

    Page selectPage();
}
6.3.4 服务层编写
import com.github.pagehelper.PageHelper;
import com.qf.dao.MyUserMapper;
import com.qf.pojo.MyUser;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import javax.annotation.Resource;
import java.util.List;

@Service
public class UserService {

    @Resource
    private MyUserMapper myUserMapper;

    public List getList() {
        PageHelper.startPage(1, 2);
        Example example = new Example(MyUser.class);
        List list = myUserMapper.selectByExample(example);
        return list;
    }
}

参考地址:

mybatis官网参考地址:http://www.mybatis.org/spring-boot-starter/

mybatis生成代码官网参考地址:http://www.mybatis.org/generator/


##### 6.3.4 服务层编写

import com.github.pagehelper.PageHelper;
import com.qf.dao.MyUserMapper;
import com.qf.pojo.MyUser;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import javax.annotation.Resource;
import java.util.List;

@Service
public class UserService {

@Resource
private MyUserMapper myUserMapper;

public List getList() {
    PageHelper.startPage(1, 2);
    Example example = new Example(MyUser.class);
    List list = myUserMapper.selectByExample(example);
    return list;
}

}




参考地址:

**mybatis官网参考地址:**

**mybatis生成代码官网参考地址:**

**配置文件编写参考地址:**

你可能感兴趣的:(SpringBoot)