SpringBoot2.0
何必余生 人气:0SpringBoot 入门介绍
一、SpringBoot 认识
今天我们就来学习当下比较流行的一个框架SpringBoot、Spring Boot使开发独立的,产品级别的基于Spring的应用变得非常简单,你只需"just run"。 我们为Spring平台及第三方库提供开箱即用的设置,这样你就可以有条不紊地开始。多数Spring Boot应用需要很少的Spring配置。你可以使用Spring Boot创建Java应用,并使用java -jar启动它或采用传统的war部署方式。SpringBoot底层那么主要就是依靠着SpringData的支持、使用SpringData来做数据访问、无论使用SQL、还是NOSQL、都能轻松对付、那么我们需要的就是掌握好基础、面向高级出发。
SpringBoot官网
二、SPringBoot 解决的问题
- 依赖太多了, 且存在版本问题
- 配置太多了且每次都一样, 大部分工程, 配置每次都是一样的, 从一个地方拷贝到另外一个地方. 且Spring发展10多年, 各种配置版本太多, 对于很多程序员来说, 分不清哪个是有效, 哪个无效.
- 部署太麻烦. 需要tomcat部署, 项目结构也需要照着Java EE的目录结构来写.那么SpringBoor就内置好了tomcat来进行web的开发应用。解决了项目部署麻烦的问题。
三、SpringBoot 特点
- 可以快速创建独立的Spring程序应用
- 嵌入了Tomcat、无需过多复杂的使用WAR文件进行项目部署
- 简化了Maven的配置
- 自动配置好了Spring容器
- 提供生产就绪型功能,如指标,健康检查和外部配置
- 对没有代码生成和对XML没有要求配置、也就是解决了大量的耦合代码和复杂的XML配置。
- starts启动器 自动以来与版本控制
四、简介、Hello Boot 入门案例
在之前我们创建一个Spring应用开发的时候、我们都需要进行简单的一些整合、约定太多、配置复杂、那么SpringBoot简化了这些复杂的配置约定、just run就能创建一个独立的、产品级别的Spring应用
背景
J2EE 开发过程中太过于复杂、配置太多、低效率的开发、复杂的流程部署、第三方平台集成的难度较大
解决
Spring全家桶时代
SpringBoot ---> J2EE 解决了J2EE一站式的方案
SpringCloud --->解决了整体分布式的方案规划
4.1、HelloWorld 程序
模拟一个应用场景、浏览器发送一个hello请求、服务器接受并却处理、并且响应HelloWorld字符串在浏览器、这是一个典型的web应用、那么我们使用SpringBoot来进行实现
4.1.1、创建一个Maven工程
我们选择的是使用IDEA+maven工程创建一个springboot入门、在创建之前一定确定好自己的maven配置和idea的全局设置、maven的镜像使用最新的阿里云镜像、工成仓库使用本地磁盘保管、更为妥当。
maven阿里云镜像
<mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/repositories/central/</url> </mirror>
maven本地仓库
之后就是创建一个简单的maven项目即可。
4.1.2、创建SpringBoot依赖关系
导入SpringBoot相关依赖
//springboot启动项依赖 <properties> <maven.compiler.source>3.6.3</maven.compiler.source> <maven.compiler.target>3.6.3</maven.compiler.target> </properties> //对web的启动依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent>
4.1.3、创建一个SpringBoot启动类
package com.xkrj.test; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication//springboot应用主程序类 public class HelloWorldDemo { public static void main(String[] args) { //spring应用启动类 SpringApplication.run(HelloWorldDemo.class,args); } }
其中遇到了一个注解:
@SpringBootAplication
:主要就是用来声明该类是一个springboot的应用类
SpringApplication.run(类型.class,args); 他就是springboot最为核心的一键启动项目、大意就是在springboot启动的时候去加载执行该类。为主类
4.1.4、创建Controller类
创建Controller就相当于MVC中的控制层一样主要用来接受请求和响应请求的一个控制层
package com.xkrj.test.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class HelloConntroller { @ResponseBody @RequestMapping("/hello") public String Hello(){ return "我的第一个SpringBoot程序"; } }
在上面的代码中出现了以下几个注解需要进行来解释一下
注解名 |
大意 |
@Controller |
标注该类为一个控制层类 |
@ResponseBody |
以json格式进行返回不经过视图解析器 |
@RequestMapping("/...") |
声明访问路径进行访问 |
4.1.5、启动访问页面
直接进行启动main方法、springboot会自动进行启动项目、内嵌了tomcat、会发现
看到tomcat端口号那么我们就成功启动了项目、直接去浏览器进行访问即可
http://localhost:8080/访问路径(RequestMapping下的路径)
那这样的话我们就简单的实现了SpringBoot程序
五、SpringBoot 场景启动器(starter)
那在上面的程序中我们很快轻松的创建并且启动了SpringBoot程序、访问页面并且还做出了响应的操作、在之前我们编写的时候需要编写一大堆的配置文件、依赖关系、那么为什么在SpringBoot中就不需要呢、而却我们之前还需要将项目部署到Tomcat中才能运行在浏览器中、那么SpringBoot却没有使用Tomcat却能在浏览器中直接运行项目有事问什么呢?
那么这就是Springboot能够火起来并且流行起来的原因之一、SpringBoot将所有的项目模块当作一个个场景、我们就是用该场景的启动器将场景纳入程序中来、直接进行依赖关联、如果不再需要那么直接将该场景的启动项取消即可、这样的话实现了多个场景多个功能的分离和部分第三方软件整合的压力、在SpringBoot中内嵌了Tomcat服务器、我们再将项目创建的时候、就已经被SpringBoot中web模块将项目打包在Tomcat服务器上启动的时候一同启动。那么这么强大的启动项就是由我们的pom.xml文件进行管理着。
5.1、POM文件
那么这个pom.xml文件就是用来管理所有SpringBoot的版本和jar的之间的依赖关系的一个仲裁中心、
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> </parent>
SpringBoot的版本仲裁中心
以后我们需要的所有jar的相关依赖都不需要编写版本号、只需要在pom.xml文件中进行声明即可、那么在一些不是依赖关系的那么还是需要我们去编写版本号的、
5.2、导入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <https://img.qb5200.com/download-x/dependency>
springboot-starter-web
springboot-starter:是SpringBoot的场景启动器
web:就是需要启动的场景
那么所有的场景的启动器的版本都属于仲裁中心所管理者
SpringBoot将所有的功能都划分了许多个场景、做成了一个个的starter、需要哪个就去将那个场景启动器依赖进行即可、
六、自动配置
6.1、主程序类、主入口类
package com.xkrj.test; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class HelloWorldDemo { public static void main(String[] args) { //spring应用启动类 SpringApplication.run(HelloWorldDemo.class,args); } }
@SpringBootAplication: SpringBoot应用标注在那个类上那么哪个类就是主类、主配置类、当SpringBoot项目启动的时候。那个类有该注解那么哪个类就进行启动main方法。
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration//他里面由出现里Spring中@Configuration注解 @EnableAutoConfiguration @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) public @interface SpringBootApplication { //源码摘要 }
上面为@SpringBootApplication的源码
6.1.1、SpringBootApplication注解
@SpringBootConfiguration:SpringBoot的配置类、该注解标注在那个类上、那么哪个类就是 SpringBoot的主配置类、
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Configuration public @interface SpringBootConfiguration { //源码摘要 }
6.1.2、EnableAutoConfiguration注解
@EnableAutoConfiguration:开启SpringBoot自动配置功能、帮我们自动配置、
@SuppressWarnings("deprecation") @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @AutoConfigurationPackage @Import(EnableAutoConfigurationImportSelector.class) public @interface EnableAutoConfiguration { //源码摘要 }
@AutoConfigurationPackage:自动配置包、给容器中自动导入类和包、指定导入需要的类和配置、一同扫入在Spring容器中、那么有了这写自动配置类、我们就不需要去编写那么多负责的配置文件了。
七、快速创建、SpringBoot
IDEA使用
NEXT
完成!
7.1、项目文件夹介绍
创建完成之后大致的项目结构
java:文件夹下当然就是我们去编写java程序代码的地方、
resources:该文件夹下那么就是静态资源文件的意思、我们SpringBoot是强力支持我们将静态资源和动态资源前后台文件资源进行分离的、那么resources文件夹就起到了一定的作用、
static:子文件夹、就专门来存放一些jsp、img、css、js、jquery等静态文件
templates:他是SpringBoot独有的、用来保存专门的模板引擎、我们在SpringBoot中发现、他内嵌了Tomcat服务器、那么就说明SpringBoot默认是不支持jsp技术的、强力建议是我们模板引擎、比如、freemarker、thymeleaf、等都是支持的
application.properties:应用的配置文件、SpringBoot配置文件、例如我们可以去在配置文件中更改Tomcat服务器的默认端口号、等等。
test:就是SpringBoot的单元测试
以上就是IDEA版pringBoot的初认识、我们需要几下我们创建SpringBoot的方式有很多种、采用我们最习惯的最简单的方式即可、注意maven和jdk还有SpringBoot的版本号、maven最好不使用最新版本的(本人采用最新的之后出现了很多问题)、那么之后我们再来详细学习SpringBoot的其他部分的内容。
加载全部内容