建立一个商城网站,房地产政策,买链接网,深圳网络推广培训机构目录 spring boot(一)入门一、简介1、微服务的概念2、什么是spring boot3、快速入门4.springboot的快捷部署spring boot(一)入门 一、简介 1、微服务的概念 说起spring boot#xff0c;我们不得不说一下“微服务”一词的兴起#xff0c;微服务一词最早起源于2014年#xff0… 目录 spring boot(一)入门一、简介1、微服务的概念2、什么是spring boot3、快速入门4.springboot的快捷部署 spring boot(一)入门 一、简介 1、微服务的概念 说起spring boot我们不得不说一下“微服务”一词的兴起微服务一词最早起源于2014年martin fowler发表的一篇文章Microservicesmartin fowler在文中这样描述了微服务的概念。 In short, the microservice architectural style [1] is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. 简而言之微服务就是一种架构风格即服务微化一个服务应该是一组小型服务服务之间通过HTTP的方式进行互通相较于传统的ALL IN ONE单体架构方式,微服务将每一个功能元素最终都是一个可独立替换和独立升级的软件单元。 2、什么是spring boot Spring Boot是由Pivotal团队提供的全新框架其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置从而使开发人员不再需要定义样板化的配置。通过这种方式Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者 ——百度百科 众所周知最流行的、最受Java开发者喜好的框架当属SpringSpring也成为了在Java EE开发中真正意义上的标准但是随着新技术的发展随着新技术的发展在这个脚本语言大行其道的时代Node JSRubyGroovyScala等Java EE使用Spring逐渐变得笨重起来大量的XML文件存在于项目中繁琐的整合配置复杂的监控低下的开发效率和部署效率等等问题。spring boot的出现解决了上述的问题让我们更加高效快速的使用spring框架。 习惯优于配置的原则默认的配置已经满足我们日常开发的大部分要求。快速搭建组合各个模块功能的提供无需配置的整合第三方框架。零XML配置只需要自动配置和Java Config。内嵌Servlet容器降低环境的要求更快更多方式的启动项目的方式。更便捷的应用状态监控。与云计算spring cloud组成J2EE一站式解决方案。3、快速入门 3.1 环境及工具 jdk1.8Spring Boot 推荐jdk1.7及以上我们使用java version 1.8.0_152。目前最新的springbootspring boot 2.1.0 BUILD-SNAPSHAT 要求Java 8 or 9 和 Spring Framework 5.1.0.BUILD-SNAPSHOT 以上。IntelliJIDEA2018我使用的是 IntelliJ IDEA 2018.1.3 x64、STS。SpringBoot : 使用1.5.10.RELEASE。3.2 Maven设置 给maven 的settings.xml配置文件的profiles标签添加指定jdk版本 profileidjdk‐1.8/idactivationactiveByDefaulttrue/activeByDefaultjdk1.8/jdk/activationpropertiesmaven.compiler.source1.8/maven.compiler.sourcemaven.compiler.target1.8/maven.compiler.targetmaven.compiler.compilerVersion1.8/maven.compiler.compilerVersion/properties
/profile 3.3 IDEA设置 3.4 Hello World 创建一个maven工程jar工程 pom.xml中导入spring boot的依赖根据官方文档的快速开始引入一下依赖 parentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion1.5.10.RELEASE/version
/parent!-- Additional lines to be added here... --!-- (you dont need this if you are using a .RELEASE version) --repositoriesrepositoryidspring-snapshots/idurlhttps://repo.spring.io/snapshot/urlsnapshotsenabledtrue/enabled/snapshots/repositoryrepositoryidspring-milestones/idurlhttps://repo.spring.io/milestone/url/repository/repositoriespluginRepositoriespluginRepositoryidspring-snapshots/idurlhttps://repo.spring.io/snapshot/url/pluginRepositorypluginRepositoryidspring-milestones/idurlhttps://repo.spring.io/milestone/url/pluginRepository/pluginRepositories Spring Boot提供了许多“Starters”可以将jar添加到类路径中spring-boot-starter-parent是一个特殊的启动器提供有用的Maven默认值其他“Starters”提供了在开发特定类型的应用程序时可能需要的依赖项。由于我们正在开发Web应用程序因此我们添加了 spring-boot-starter-web依赖项。在此之前我们可以通过运行以下命令来查看当前的内容 $ mvn dependencytree [INFO] com.examplemyprojectjar0.0.1-SNAPSHOT 也可以在idea中 使用ctrlaltshiftu 查看依赖图如下 可以看到它spring-boot-starter-parent本身不提供依赖关系。要添加必要的依赖项请编辑pom.xml并spring-boot-starter-web在该parent部分的正下方添加 依赖项 dependencies dependency groupId org.springframework.boot / groupId artifactId spring-boot-starter-web / artifactId / dependency
/ dependencies 再次查看依赖图如下 3.5 编写主程序启动应用 import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** program: springboot-01-HelloWorrld** description: springboot主程序类** author: cxw** create: 2018-09-07 14:34**///springmvc的注解提供web服务接收浏览器请求并向浏览器响应等同 controller和responseBody注解
RestController
EnableAutoConfiguration
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}RestController和requestmapping注解是Spring MVC注解。它们不是特定于Spring引导的。有关更多细节 请参阅Spring参考文档中的MVC部分。第二个注解EnableAutoConfiguration这个注解告诉springboot让它猜测你想基于你添加的jar依赖去如何配置spring由于Spring boot-starer-web添加了Tomcat和Spring MVC所以自动配置会假设您正在开发一个web应用程序并帮您相应地设置Spring。应用程序的最后一部分是main方法。这只是一个标准的方法它遵循Java约定的应用程序入口点。我们的main方法通过调用run来委托Spring Boot的SpringApplication类。SpringApplication引导我们的应用程序启动Spring然后启动自动配置的Tomcat web服务器。我们需要Application类作为运行方法的一个参数用来告诉SpringApplication它是主要的Spring组件。args数组命令行参数也作为参数传递给SpringApplication。3.6 编写controller响应浏览器请求 /*** home方法 向浏览器响应 Hello World*/RequestMapping(/hello)public String home(){return Hello World;} 3.7 运行main方法启动程序 浏览器访问localhost:8080/hello 可以看到我们第一个spring boot项目已经启动了。另外我们看到这里Applicationjava被配置为自动配置的控制器而且对于EnableAutoConfiguration注解我们使用不熟悉很容易忘记在控制层添加注解其实spring boot 是可以使用一个主程序启动spring bot项目,然后我们按照我们传统的controller,service,dao三层编写我们的程序我们改进一下项目如下 首先springboot的主程序入口: //SpringBootApplication 来标注一个主程序类
//说明这是一个Spring Boot应用
SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}我们定义两个Controller控制层HelloController和HomeController按照springmvc的方式接收请求返回响应。 package cn.news.chen.controller;/*** Project springboot-01-HelloWorrld* User cxw* Date 2018/9/7* Time 16:08* Description:*/import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;/*** program: springboot-01-HelloWorrld** description: springboot控制层** author: cxw** create: 2018-09-07 16:08**/
Controller
RequestMapping(/a)
public class HomeController {RequestMapping(/b)ResponseBodypublic String hello(){return 这是我的第一个spring boot应用;}
}启动访问 HelloController.java package cn.news.chen.controller;/*** Project springboot-01-HelloWorrld* User cxw* Date 2018/9/7* Time 16:39* Description:*/import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;/*** program: springboot-01-HelloWorrld** description: 控制层HelloController** author: cxw** create: 2018-09-07 16:39**/
//RestController和这个注解都是类级别的使用RestController说明该类下的所有方法都是向浏览器
//响应
Controller
public class HelloController {/*** home方法 向浏览器响应 Hello World*/RequestMapping(/hello)ResponseBodypublic String home(){return Hello World;}
}启动访问 注意如果按照SpringBootApplication主程序的方式使用springboot,类Application.java 要在需要控制的springboot 组件的顶级包或者同一级的包下才能使用主程序类启动spring boot程序springboot建议的目录结构如下:com- myproject- demo- Application.java|- domain| - User.java| - UserRepository.java|- service| - UserService.java|- controller| - UserController.java|1、Application.java 建议放到根目录下面,主要用于做一些框架配置。2、domain目录主要用于实体Entity与数据访问层Repository。3、service 层主要是业务逻辑层。4、controller 负责页面访问控制。 4.springboot的快捷部署 首先我们要在pom.xml文件中添加spring boot的打包jar插件官网文档中给我们指出了使用的依赖如图 pom.xml添加如下内容 buildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins
/build 然后我们使用maven将我们的spring boot项目打包 可以看到在我们项目的target目录下已经打包成功了。我们使用jar包启动的方式启动一下我们的springboot项目。 使用java -jar 的方式依然可以启动我们的springboot项目并且可以正常访问由此可以看到我们的springboot 使用嵌入式的Servlet容器应用无需打成WAR包 starters自动依赖与版本控制大量的自动配置简化开发真正做到了 J2EE一站式解决方案。转载于:https://www.cnblogs.com/cxwzss/p/9593062.html