springboot简单介绍
概述
随着动态语言的流行(Ruby、Groovy、Scala、Node.js),Java的开发显得格外的笨重:繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大。
在上述环境下,Springboot应运而生。它使用”习惯优于配置”(项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须手动进行配置)的理念让你的项目快速运行起来。使用springboot很容易创建一个独立运行(运行jar,内嵌servlet容器)、准生产级别的基于Spring框架的项目,使用springboot你可以不用或者只需要很少的Spring配置。
Spring Boot 的核心功能
1、独立运行的Spring项目
Spring Boot可以以jar包的形式独立运行,运行一个Spring Boot项目只需要通过java -jar xx.jar。
2、内置Servlet容器
Spring Boot可选择内嵌Tomcat、Jetty或者Undertow,这样无须以war包形式部署。
3、提供starter简化maven配置
Spring提供了一系列的starter pom来简化maven依赖加载,例如:当你使用了spring-boot-starter-web时,会自动加入相关依赖,无需你手动一个一个的添加坐标依赖。
4、自动配置Spring
Spring Boot会根据在类路径中的jar包、类,为jar包里的类自动配置Bean,这样会极大地减少我们要使用的配置。当然,Spring Boot只是考虑了大多数的开发场景,并不是所有场景,若在实际开发中,我们需要自动配置bean,而Spring Boot没有提供支持,则可以自定义自动配置。
5、无代码生成和xml配置
Spring Boot的神奇的不是借助于代码生成来实现的,而是通过条件注解来实现的,这是Spring 4.x提供的新特性,Spring 4.x提倡使用java配置和注解配置相结合,而Spring Boot不需要任何xml配置即可实现Sping Boot的所有配置。
6、优缺点:
优点:
快速构建项目:省略了繁琐且重复的xml配置,分分钟构建一个web工程;
对主流开发框架的无配置集成:提供了很多Starter 依赖包,开箱即用,无需多余配置;
项目可独立运行:无需外部依赖Servlet容器;
极大地提供了开发、部署效率;
监控简单:提供了actuator包,可以使用它来对你的应用进行监控。
缺点:
依赖太多:一个简单的SpringBoot应用都有好几十M只有;
缺少监控集成方案、安全管理方案:只提供基础监控,要实现生产级别的监控,监控方案需要自己动手解决;(后期讲解soringCloud时,会结合pinpoint和skywalking分布式链路工具进行应用监控)
工程搭建
使用的工具为:Spring Tool Suite(3.9.3.RELEASE) SpringBoot:1.5.14.RELEASE
Spring Tool Suite 下载地址:https://spring.io/tools/sts/all
创建项目
利用**Spring Initializr**进行快速创建项目
选择Dashboard–>CREATE SPRING STARTER PROJECT进行创建项目,或者可以选择file–>new–>Spring Starter Project,打开创建面板
第一种方式:
第二种方式:
出现创建面板,填写项目信息
这里url建议直接填写:https://start.spring.io(默认是http方式)
maven相关命名说明
Group:一般为逆向域名格式,如本博客域名为lqdev.cn,则group一般以cn.lqdev开头
Artifact:唯一标识,一般为项目名称。 具体maven相关信息,可自行搜索,这里只简单阐述
选择依赖包和版本
除此下载包时,可能会比较慢,建议替换成阿里云的maven镜像
项目结构
pom依赖
由于使用了Spring Initializr直接创建项目,相关依赖自动添加好了。
主入口
编写controller
启动应用
直接Chapter1Application,右键 run as –> Spring Boot App 即可。
看见以下提示,说明启动成功:
简单说明
springboot 默认的端口号为:8080,此时浏览器访问:127.0.0.1:8080/demo即可查看。
需要修改默认端口号时及上下文路径时,只需要在application.properties设置以下属性:
访问:http://127.0.0.1:8888/chapter1/demo
自此,一个简单的SpringBoot就开发完成了。比起原来的springmvc时的开发效率,简直是一个质的飞跃,无需再烦扰烦人的xml配置文件了。终于可以快乐的撸代码了~
总结
如果对java微服务、分布式、高并发、高可用、大型互联网架构技术、面试经验交流等等感兴趣的同学,可以关注我,我会不定期免费发放资料链接,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。欢迎分享,欢迎评论,欢迎转发,需要资料的同学加入Java后端技术群:819940388,或关注微信公众号:Java资讯库,回复“架构”,免费的大型互联网Java技术视频分享给大家。
网友评论