这篇博客是记录我学习springboot2.0的第一个入门小案例,其中使用的springboot版本为2.0,jdk1.8(必须),maven(必须)
1,首先让我们来简单来了解下springboot(关于它的详细介绍没有人能比官网更清楚),ta
2,springboot与springcloud的关系 springboot是一个快速开发框架,能够帮助我们 快速整合第三方常用框架,完全采用注解化的方式,简化xml配置,最终以java应用程序的方式启动。springcloud是一套目前完整的微服务框架,功能非常强大(注册中心,客户端调用工具,服务治理(负载均衡,断路器,分布式配置中心,网关,服务链路,消息总线等))。springcloud依赖于springboot实现微服务使用springmvc编写微服务接口。
3,springboot与springmvc springboot的web组件默认继承springmvc。
相关概念我们理解完毕,现在开始我们的第一个hello world小程序
第一步:
注意:创建jar文件项目
第二步:导入pom依赖 如下:
<!-- 整合第三方的常用框架的各种依赖关系 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent> <dependencies> <!-- spring-boot-starter-web 是springboot整合springmvc 实现原理:maven依赖继承关系 --> <!--相当于把第三方常用maven依赖信息,在parent项目中已经封装好了,只需要使用springboot提供依赖信息关联整合的jar包 --> <!-- springboot中快速原理(maven字父依赖关系) --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
第三步:编写代码
package com.springboot.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * 这是我的第一个springboot的学习用例 * @author Administrator * */ //@RestController表示当前标注的类返回json格式的字符串,该注解是由springmvc提供的 //@RestController相当于 @Controller + @ResponseBody注解 @RestController //@EnableAutoConfiguration 注解作用:扫包范围默认 在当前类里面 @EnableAutoConfiguratio public class HelloController { @RequestMapping("/hello") public String hello(){ return "hello spring boot !!"; } public static void main(String[] args) { //springboot项目的入口 SpringApplication.run(HelloController.class, args); } }
第四步:通过以java程序的方式运行代码
出现上述情况代表springboot启动成功。
第五步 地址栏输入
http://localhost:8080/hello
一个springboot的helloworld程序便搭建完成。
但显然以上的controller层是不合规范的,企业级开发中,你不可能把main函数写入controller层包中,况且
@EnableAutoConfiguration 的默认扫描包范围为当前类中,这时我们便需要@ComponentScanz注解,该注解表示你需要扫描包的范围
//该注解表示扫描包的范围,缺点:如果扫描包比较多,写起来很麻烦
//@ComponentScan(basePackages={"com.springboot.controller"})
幸好,springboot为我们提供了解决方案。@SpringbootApplication注解,该注解等于 @EnableAutoConfiguration + @ComponentScan 同级包及其子包和当前包
所以经过修改后我们的项目结构变成了
App.java代码
package com.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }
HelloController.java代码
package com.springboot.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @RequestMapping("/hello") public String hello(){ return "hello world!!"; } }
最后再次启动
至此一个企业级的springboot-hello world程序完成了。
笔记:
1,springboot概念 springboot是一个快速开发框架,能够帮助我们快速整合第三方常用框架(通过maven依赖关系,maven继承),完全采用注解化,内置嵌入http服务器(tomcat,jetty)默认嵌入tomcat服务器,最终以java应用程序进行执行
2,springcloud依赖于springboot进行微服务的开发
3,springboot的web组件默认继承springmvc
4,常用注解@SpringBootApplication,表示开启springboot的自动配置和扫包,默认扫描包范围为当前类以及其包下的子类
5,通过java应用程序启动