SpringBoot

  Spring Boot是一站式整合所有应用框架的框架,简化Spring应用开发,约定大于配置,去繁从简,开箱即用,准生产环境的运行时应用监控框架

  快速构建 SpringBoot 应用必须联网创建,使用 Eclipse 或 Idea,选择好 SpringBoot 版本及 Spring Starter 模块即可

  1) 自动生成主程序类,用于启动项目 2) 自动生成静态资源目录及属性配置文件 3) 自动增加pom.xml相关依赖配置

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <!-- 用来做依赖管理,几乎将我们用到的所有的依赖的版本都声明好了;-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.12.RELEASE</version>
<relativePath/>
</parent>
<!-- 构建的项目模块都需继承 org.springframework.boot 做依赖管理-->
<groupId>cn.gcaca</groupId>
<artifactId>hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 版本仲裁中心-->
<properties>
<java.version>1.8</java.version>
</properties>
<!-- spring-boot-starter-xxx:场景启动器 SpringBoot自动引入场景所需要的所有依赖-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<!-- 引入springboot插件;打包插件 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

  在static文件夹下存放静态资源文件

  application.properties 或 application.yml 配置文件名是固定的,定义配置加载属性文件规则

YAML基本语法

  l  使用缩进表示层级关系

  l  缩进时不允许使用Tab键,只允许使用空格。

  l  缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

  l  大小写敏感

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

    l  k: v:字面值直接书写即可;字符串默认不用加上单引号或者双引号;

    l  " ":双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思 例 : name: "zhangsan \n lisi":输出;zhangsan 换行 lisi

    l  ' ':单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据 例 : name: 'zhangsan \n lisi':输出;zhangsan \n lisi

 对象、Map(属性和值)(键值对)

    l  k: v:通过缩进在下一行来写对象的属性和值表示其关系;注意缩进

    l  对象还是k: v的方式

    l  行内写法  friends: {lastName: zhangsan,age: 18}

friends:
lastName: zhangsan
age:

 数组(List、Set)

    l  行内写法  pets: [cat,dog,pig]

  用- 值表示数组中的一个元素

pets:
‐ cat
‐ dog

自动配置原理

  1)、SpringBoot 帮我们配好了所有的应用场景

  2)、SpringBoot 中会有很多的 xxxxAutoConfigurarion(帮我们给容器中自动装配好组件)

  3)、xxxxAutoConfigurarion 给容器中配组件的时候,组件默认的属性一般都是从 xxxProperties 中获取这些属性的值

  4)、xxxProperties 是和配置文件绑定的(属性一 一对应)

  5)、如默认值不符合我们的需要只需改掉这些默认配置即可;

  6)、如果默认的组件我们不用;还可以自定义组件。

SpringBoot 的一个最大策略:自定义组件用自己的,否则,使用默认的。

  自定义配置类

@SpringBootConfiguration
public class AppConfig {
@Bean
public InternalResourceViewResolver internalResourceViewResolver(){
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/templates/");
resolver.setSuffix(".html");
return resolver;
}
// 补充:获取ApplicationContext 对象
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
context.getBean("myBean");
}
}

SpringBoot 构建 WEB 应用项目

  构建 web,jdbc,mybatis,mysql,redis,thymeleaf 等相关组件

  增加 Druid 数据源

        <dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12</version>
</dependency>

  application.yml 配置相关属性

spring:
datasource:
username: root
password: 12345
url: jdbc:mysql://localhost:3306/scw?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
config-location: classpath:/mybatis/mybatis-config.xml
mapper-locations: classpath:/mybatis/mapper/*.xml

  主程序配置类

//主程序扫描加载 mapper
@MapperScan("cn.gc.dao")
//集成事务管理,在Service接口中增加@Transactional
@EnableTransactionManagement
//整合Web组件,在配置类增加@WebServlet @WebFilter @WebListener
@ServletComponentScan
@SpringBootApplication
public class SpringMybatisApplication {
public static void main(String[] args) {
SpringApplication.run(SptingMybatisApplication.class, args);
}
}

  Druid 配置类及监控后台管理

@SpringBootConfiguration
public class DruidConfig {
   //引入yml文件配置属性
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource() throws SQLException {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setFilters("stat");// 配置监控统计拦截的filters
return dataSource;
}
// 配置Druid的监控 1、配置一个管理后台的Servlet
@Bean
public ServletRegistrationBean statViewServlet() {
ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
Map<String, String> initParams = new HashMap<>();
initParams.put("loginUsername", "admin");
initParams.put("loginPassword", "12345");
initParams.put("allow", "");// 默认就是允许所有访问
initParams.put("deny", "");// 拒绝哪个ip访问
bean.setInitParameters(initParams);
return bean;
}
// 2、配置一个web监控的filter
@Bean
public FilterRegistrationBean webStatFilter() {
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(new WebStatFilter());
Map<String, String> initParams = new HashMap<>();
initParams.put("exclusions", "*.js,*.css,/druid/*");// 排除过滤
bean.setInitParameters(initParams);
bean.setUrlPatterns(Arrays.asList("/*"));
return bean;
}
}

Spring Boot 常用注解汇总

SpringBoot 相关模块

Java框架之SpringBoot-Web构建-yml-模块-注解的更多相关文章

  1. java框架之SpringBoot(2)-配置

    规范 SpringBoot 使用一个全局的配置文件,配置文件名固定为 application.properties 或 application.yml .比如我们要配置程序启动使用的端口号,如下: s ...

  2. java框架之SpringBoot(3)-日志

    市面上的日志框架 日志抽象层 日志实现 JCL(Jakarta Commons Logging).SLF4J(Simple Logging Facade For Java).JBoss-Logging ...

  3. 【java框架】SpringBoot(3) -- SpringBoot集成Swagger2

    1.SpringBoot web项目集成Swagger2 1.1.认识Swagger2 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体 ...

  4. SpringBoot+Gradle构建多模块项目

    1 概述 Gradle由于构建速度比Maven快,且比Maven灵活,因此很多后端的应用都使用了Gradle进行构建,但一个问题是,Gradle的多模块项目比较难构建,再加上Gradle的更新非常快, ...

  5. 【java框架】SpringBoot(4)--SpringBoot实现异步、邮件、定时任务

    1.SpringBoot整合任务机制 1.1.SpringBoot实现异步方法 日常开发中涉及很多界面与后端的交互响应,都不是同步的,基于SpringBoot为我们提供了注解方式实现异步方法.使得前端 ...

  6. java框架之SpringBoot(5)-SpringMVC的自动配置

    本篇文章内容详细可参考官方文档第 29 节. SpringMVC介绍 SpringBoot 非常适合 Web 应用程序开发.可以使用嵌入式 Tomcat,Jetty,Undertow 或 Netty ...

  7. java框架之SpringBoot(1)-入门

    简介 Spring Boot 用来简化 Spring 应用开发,约定大于配置,去繁从简,just run 就能创建一个独立的.产品级别的应用. 背景: J2EE 笨重的开发.繁多的配置.低下的开发效率 ...

  8. java框架之SpringBoot(9)-数据访问及整合MyBatis

    简介 对于数据访问层,无论是 SQL 还是 NOSQL,SpringBoot 默认采用整合 SpringData 的方式进行统一处理,添加了大量的自动配置,引入了各种 Template.Reposit ...

  9. java框架之SpringBoot(15)-安全及整合SpringSecurity

    SpringSecurity介绍 Spring Security 是针对 Spring 项目的安全框架,也是 Spring Boot 底层安全模块默认的技术选型.它可以实现强大的 Web 安全控制.对 ...

  10. java框架之SpringBoot(16)-分布式及整合Dubbo

    前言 分布式应用 在分布式系统中,国内常用 Zookeeper + Dubbo 组合,而 SpringBoot 推荐使用 Spring 提供的分布式一站式解决方案 Spring + SpringBoo ...

随机推荐

  1. 《VSTO开发入门教程》配套资源下载

    <VSTO开发入门教程> 刘永富 著 清华大学出版社 封面截图 购书网址 京东网 淘宝网 配套资源到如下页面寻找: https://www.cnblogs.com/ryueifu-VBA/ ...

  2. 洛谷-P3796-【模板】AC自动机(加强版)

    题目传送门 -------------------------------------- 过年在家无聊补一下这周做的几道AC自动机的模板题 sol:AC自动机,在fail边的基础上再加一个last边, ...

  3. idea发布web项目在tomcat位置问题

    (1)war模式这种可以称之为是发布模式,看名字也知道,这是先打成war包,再发布. (2)war exploded模式是直接把文件夹.jsp页面 .classes等等移到Tomcat 部署文件夹里面 ...

  4. 视觉SLAM算法框架解析(2) ORB-SLAM

    版权声明:本文为博主原创文章,未经博主允许不得转载. ORB-SLAM[1]完全继承了PTAM(http://www.cnblogs.com/zonghaochen/p/8442699.html)的衣 ...

  5. Linux centos 下安装redis

    一.安装编译工具及库文件      yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 二.选择安装文件 ...

  6. King of the Waves

    You are organising a king of the hill tournament, the Buenos Aires Paddleboarding Competition (BAPC) ...

  7. VSTO外接程序项目只用1个文件实现Ribbon CustomUI和CustomTaskpane定制【C#版】

    VSTO中的自定义功能区和自定义任务窗格需要用到各种命名空间.添加所需文件,才能实现.后来我发现可以把所有代码都写在ThisAddin.cs这个默认文件中. 大家可以在Visual Studio中创建 ...

  8. HTML 标签的 target 属性

    定义和用法 target 属性规定在何处打开 action URL. 属性值 值 描述 _blank 在新窗口中打开. _self 默认.在相同的框架中打开. _parent 在父框架集中打开. _t ...

  9. IntelliJ IDEA 的便捷操作性

    快捷键 说明 IntelliJ IDEA 的便捷操作性,快捷键的功劳占了一大半,对于各个快捷键组合请认真对待.IntelliJ IDEA 本身的设计思维是提倡键盘优先于鼠标的,所以各种快捷键组合层出不 ...

  10. MOOC(7)- case依赖、读取json配置文件进行多个接口请求-跳过测试用例(6)

    初始化.跳过测试用例 # test_class_6.py import unittest from mock import mock from day_20200208_mooc.base.inter ...