目录

1 Spring Boot介绍

2 创建Spring Boot项目

2.1 第一种方式, 使用Spring提供的初始化器, 就是向导创建SpringBoot应用

使用国内的地址

3 注解的使用

4 SpringBoot的配置文件

5 多环境配置

@Value读取数据

6 @ConfigurationProperties

7  使用jsp

8 使用容器

9 ComnandLineRunner 接口 ,  ApplcationRunner接口


1 Spring Boot介绍

SpringBoot是Spring中的一个成员, 可以简化Spring,SpringMVC的使用。 他的核心还是IOC容器。

特点:

  • Create stand-alone Spring applications

    创建spring应用

  • Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)

    内嵌的tomcat, jetty , Undertow

  • Provide opinionated 'starter' dependencies to simplify your build configuration

    提供了starter起步依赖,简化应用的配置。

    比如使用MyBatis框架 , 需要在Spring项目中,配置MyBatis的对象 SqlSessionFactory , Dao的代理对象

    在SpringBoot项目中,在pom.xml里面, 加入一个 mybatis-spring-boot-starter依赖

  • Automatically configure Spring and 3rd party libraries whenever possible

    尽可能去配置spring和第三方库。叫做自动配置(就是把spring中的,第三方库中的对象都创建好,放到容器中, 开发人员可以直接使用)

  • Provide production-ready features such as metrics, health checks, and externalized configuration

    提供了健康检查, 统计,外部化配置

  • Absolutely no code generation and no requirement for XML configuration

    不用生成代码, 不用使用xml,做配置

2 创建Spring Boot项目

2.1 第一种方式, 使用Spring提供的初始化器, 就是向导创建SpringBoot应用

使用的地址: https://start.spring.io

SpringBoot项目的结构:

使用国内的地址

https://start.springboot.io

创建maven项目

3 注解的使用

@SpringBootApplication
符合注解:由
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan1.@SpringBootConfiguration@Configuration
public @interface SpringBootConfiguration {@AliasFor(annotation = Configuration.class)boolean proxyBeanMethods() default true;
}说明:使用了@SpringBootConfiguration注解标注的类,可以作为配置文件使用的,可以使用Bean声明对象,注入到容器

 2.@EnableAutoConfiguration

启用自动配置, 把java对象配置好,注入到spring容器中。例如可以把mybatis的对象创建好,放入到容器中

3.@ComponentScan

@ComponentScan 扫描器,找到注解,根据注解的功能创建对象,给属性赋值等等。
默认扫描的包: @ComponentScan所在的类所在的包和子包。

4 SpringBoot的配置文件

配置文件名称: application

扩展名有: properties( k=v) ; yml ( k: v)

使用application.properties, application.yml

application.properties设置 端口和上下文

#设置端口号
server.port=8082
#设置访问应用上下文路径, contextpath
server.servlet.context-path=/myboot
​

application.yml

server:port: 8083servlet:context-path: /myboot2

空格必须要有

5 多环境配置

有开发环境, 测试环境, 上线的环境。

每个环境有不同的配置信息, 例如端口, 上下文件, 数据库url,用户名,密码等等

使用多环境配置文件,可以方便的切换不同的配置。

使用方式: 创建多个配置文件, 名称规则: application-环境名称.properties(yml)

创建开发环境的配置文件: application-dev.properties( application-dev.yml )

创建测试者使用的配置: application-test.properties

 加粗的是我们自定义的名称

@Value读取数据

@Value("${key}") , key 来自 application.properties(yml)
application.properties:添加两个自定义配置项 school.name 和
school.website。在 IDEA 中可以看到这两个属性不能被 SpringBoot 识别,背景是桔色的

 

 在配置文件中找school(把配置文件中的数据映射为java对象)

告诉框架在school中找school开头的属性,将这些和对象的属性名去比较,名字是一样的;那就将同样的话,就将文件中的数据赋给同名的属性,然后get set tostring

然后加@Component,目的是创建子类的对象

@Resource自动注入 ,从类中拿到SchoolInfo这个号对象,赋给info

6 @ConfigurationProperties

@ConfigurationProperties: 把配置文件的数据映射为java对象。

属性:prefix 配置文件中的某些key的开头的内容。

@Component
@ConfigurationProperties(prefix = "school")
public class SchoolInfo {private String name;private String website;private String address;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getWebsite() {return website;}public void setWebsite(String website) {this.website = website;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}@Overridepublic String toString() {return "SchoolInfo{" +"name='" + name + '\'' +", website='" + website + '\'' +", address='" + address + '\'' +'}';}
}

application.properties

#配置端口号
server.port=8082
#context-path
server.servlet.context-path=/myboot#自定义key=value
school.name=动力节点
school.website=www.bjpowernode.com
school.address=北京的大兴区site=www.bjpowernode.com

7  使用jsp

SpringBoot不推荐使用jsp ,而是使用模板技术代替jsp

使用jsp需要配置:

1) 加入一个处理jsp的依赖。 负责编译jsp文件

<dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId>
</dependency>

 

测试

2) 如果需要使用servlet, jsp,jstl的功能

<dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId>
</dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId>
</dependency><dependency>
<groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.1</version>
</dependency>

3) 创建一个存放jsp的目录,一般叫做webapp

​    index.jsp

4) 需要在pom.xml指定jsp文件编译后的存放目录。

META-INF/resources

5)创建Controller, 访问jsp

6)在application.propertis文件中配置视图解析器

8 使用容器

你想通过代码,从容器中获取对象。

通过SpringApplication.run(Application.class, args); 返回值获取容器。

public static ConfigurableApplicationContext run(Class<?> primarySource, String... args) {return run(new Class[]{primarySource}, args);
}ConfigurableApplicationContext : 接口,是ApplicationContext的子接口
public interface ConfigurableApplicationContext extends ApplicationContext

9 ComnandLineRunner 接口 ,  ApplcationRunner接口

这两个接口都 有一个run方法。 执行时间在容器对象创建好后, 自动执行run()方法。

可以完成自定义的在容器对象创建好的一些操作。

开发中可能会有这样的情景。需要在容器启动后执行一些内容。比如读取配置文件,数
据库连接之类的。SpringBoot 给我们提供了两个接口来帮助我们实现这种需求。这两个接口
分别为 CommandLineRunner 和 ApplicationRunner。
他们的执行时机为容器启动完成的时候。
这两个接口中有一个 run 方法,我们只需要实现这个方法即可。这两个接口的不同之处
在于: ApplicationRunner 中 run 方 法 的 参 数 为 ApplicationArguments , 而
CommandLineRunner

接口中 run 方法的参数为 String 数组

创建 Spring Boot 项目,不用选依赖,或者修改 010-springboot-container

创建 SomeService 接口和实现类,定义 sayHello()方法
@FunctionalInterface
public interface CommandLineRunner {void run(String... args) throws Exception;
}@FunctionalInterface
public interface ApplicationRunner {void run(ApplicationArguments args) throws Exception;
}

Spring Boot项目介绍(值得学习,超详细)相关推荐

  1. 《SpringCloud超级入门》Spring Boot项目搭建步骤(超详细)《六》

    目录 编写第一个 REST 接口 读取配置文件 profiles 多环境配置 热部署 actuator 监控 自定义 actuator 端点 统一异常处理 异步执行 随机端口 编译打包 在 Sprin ...

  2. Linux(centos7)上使用docker部署spring boot项目(加图超详细)

    准备工作 docker部署mysql并成功连接将所需数据库移入所部署的mysql中 docker部署java8 拉取镜像 docker pull java:8    查看镜像 docker image ...

  3. Spring Boot入门到精通(超详细)

    1.Spring Boot简介 我们知道,从 2002 年开始,Spring 一直在飞速的发展,如今已经成为了在Java EE(Java Enterprise Edition)开发中真正意义上的标准, ...

  4. CentOS 7 快速搭建JavaWeb开发环境并部署Spring boot项目(纯干货、详细)

    前言: 服务器:阿里云服务器ECS,装载CentOS 7系统 终端模拟工具&文件传输软件:xshell 7 \ xftp 7 IDE: IntelliJ IDEA 2022.1 部分内容参考阿 ...

  5. 我司Spring Boot 项目打包 + Shell 脚本部署详细总结,太有用了!

    欢迎关注方志朋的博客,回复"666"获面试宝典 本篇和大家分享的是 Spring Boot 打包并结合 Shell 脚本命令部署,重点在分享一个shell 程序启动工具,希望能便利 ...

  6. spring boot项目Intellij 打包

    spring boot项目Intellij 打包 学习了:http://blog.csdn.net/hzt_fighting_up/article/details/78174291 在edit con ...

  7. 从服务器基础环境配置到搭建Docker+Gitlab+Gitlab Runner,完整介绍Spring Boot项目的持续集成与持续交付具体实现!

    1. 序言 在大学的课程学习,非常注重团队协作的培养,在企业开发中,团队协作开发项目的场景更是甚多.另外,在当下的热门技术栈中,微服务开发模式.前后端分离开发模式逐渐盛行,Spring Boot.VU ...

  8. Pyside2 学习系列三:PyInstaller打包项目瘦身(超详细的Pyside2 攻略)

    继上一篇文章打包后,发现包太大了,我们现在开始进行瘦身优化. 本项目的所有演示代码:github可在这里下载. 打包只用的工具为PyInstaller. 不想细看的朋友 可以直接跳到 最后 方法对比 ...

  9. 【MySQL】Spring Boot项目基于Sharding-JDBC和MySQL主从复制实现读写分离(8千字详细教程)

    目录 前言 一. 介绍 二. 主从复制 1. 原理 2. 克隆从机 3. 克隆从机大坑 4. 远程登陆 5. 主机配置 6. 从机配置 7. 主机:建立账户并授权 8. 从机:配置需要复制的主机 9. ...

最新文章

  1. 漫画 | TCP,一个悲伤的故事
  2. 查看运行状态_查看 Linux 系统服务的 5 大方法
  3. 编程一个最简单游戏_一个关于AI编程的游戏
  4. matlab生产计划问题,用MATLAB解决综合生产计划编制过程中的优化问题
  5. [jQuery] event.stopPropagation()报错
  6. 休眠事实:有利于双向集vs列表
  7. Python爬虫中文乱码问题(爬虫乱码)
  8. 哈佛推出这款PyTorch工具包,10行代码训练“AI药神”模型
  9. 基于Chrome浏览器的前端调试
  10. 用JAVA FX制作3D魔方游戏
  11. 1007 Maximum Subsequence Sum(25 分)
  12. mysql八大知识点_MySQL索引八大法则之上篇
  13. informix sybase数据库下载地址
  14. (转)远程计算机或设备将不接受连接,谷歌浏览器无法上网
  15. Java并发机制的底层实现原理--volatile
  16. 计算机系统--机器指令与汇编
  17. 平均年龄c加加语音用switch_C语言中的SWITCH是什么意思?
  18. switch内部执行顺序
  19. 虚拟机DEDECMS织梦建站
  20. linux磁盘挂载方式mount

热门文章

  1. edge通常不会下载xxxx确保信任xxx怎么解决
  2. 暑期训练day14 A. XXXXX
  3. 计算机电源出现问题,电源故障引起的电脑问题
  4. 编译Linux内核没有zImage,Linux 编译系统的简单介绍与内核编译安装
  5. 【组织架构】中国铁路武汉局集团有限公司
  6. 【网络】默认路由(路由黑洞,路由终结)
  7. Cutting a Rod
  8. 软件工程师之路-软考(中级)1
  9. XMLWorkerHelper生成pdf文件添加页眉页脚
  10. 深圳“托育”放大招!政府出钱帮你带娃啦!