当前位置: 澳门新濠3559 > 编程 > 正文

1、独立运行Spring项目,Boot你可以不用或者只需要

时间:2019-10-06 23:48来源:编程
springboot简单介绍 随着动态语言的流行(Ruby、Groovy、Scala、Node.js),Java的开发显得格外的笨重:繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大。在上述环境

springboot简单介绍

随着动态语言的流行(Ruby、Groovy、Scala、Node.js),Java的开发显得格外的笨重:繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大。在上述环境下,Springboot应运而生。它使用"习惯优于配置"(项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须手动进行配置)的理念让你的项目快速运行起来。使用springboot很容易创建一个独立运行(运行jar,内嵌servlet容器)、准生产级别的基于Spring框架的项目,使用springboot你可以不用或者只需要很少的Spring配置。

  • 独立运行的Spring项目

Spring Boot可以以jar包的形式独立运行,运行一个Spring Boot项目只需要通过java -jar xx.jar。

  • 内置Servlet容器

Spring Boot可选择内嵌Tomcat、Jetty或者Undertow,这样无须以war包形式部署。

  • 提供starter简化maven配置

Spring提供了一系列的starter pom来简化maven依赖加载,例如:当你使用了spring-boot-starter-web时,会自动加入相关依赖,无需你手动一个一个的添加坐标依赖。

  • 自动配置Spring

Spring Boot会根据在类路径中的jar包、类,为jar包里的类自动配置Bean,这样会极大地减少我们要使用的配置。当然,Spring Boot只是考虑了大多数的开发场景,并不是所有场景,若在实际开发中,我们需要自动配置bean,而Spring Boot没有提供支持,则可以自定义自动配置。

  • 无代码生成和xml配置

Spring Boot的神奇的不是借助于代码生成来实现的,而是通过条件注解来实现的,这是Spring 4.x提供的新特性,Spring 4.x提倡使用java配置和注解配置相结合,而Spring Boot不需要任何xml配置即可实现Sping Boot的所有配置。

Spring Boot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目。它使用习惯优于配置的理念让你的项目快速运行起来,使用Spring Boot很容易创建一个独立运行(运行jar,内置Servlet容器,Tomcat、jetty)、准生产级别的基于Spring框架的项目,使用SpringBoot你可以不用或者只需要很少的配置文件。

一、什么是SpringBoot
  描述:Spring Boot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目。大多数SpringBoot项目只需要很少的配置文件。
二、SpringBoot核心功能
1、独立运行Spring项目
    Spring boot 可以以jar包形式独立运行,运行一个Spring Boot项目只需要通过java -jar xx.jar来运行。
2、内嵌servlet容器
Spring Boot可以选择内嵌Tomcat、jetty或者Undertow,这样我们无须以war包形式部署项目。
3、提供starter简化Maven配置
spring提供了一系列的start pom来简化Maven的依赖加载,例如,当你使用了spring-boot-starter-web,会自动加入如图5-1所示的依赖包。
4、自动装配Spring

1.什么是spring boot

1、独立运行Spring项目,Boot你可以不用或者只需要很少的Spring配置澳门新濠3559:。优点
  1. 快速构建项目:省略了繁琐且重复的xml配置,分分钟构建一个web工程;
  2. 对主流开发框架的无配置集成:提供了很多Starter 依赖包,开箱即用,无需多余配置;
  3. 项目可独立运行:无需外部依赖Servlet容器;
  4. 极大地提供了开发、部署效率;
  5. 监控简单:提供了actuator包,可以使用它来对你的应用进行监控。
  • 独立运行的Spring项目:可以以jar包形式独立运行,通过java -jar xx.jar即可运行。
  • 内嵌Servlet容器:可以选择内嵌Tomcat、Jetty等。
  • 提供starter简化maven配置:一个maven项目,使用了spring-boot-starter-web时,会自动加载Spring Boot的依赖包。
  • 自动配置Spring:Spring。 Boot会根据在类路径中的jar包、类,为jar包中的类自动配置Bean。
  • 准生产的应用监控:提供基于http、ssh、telnet对运行时的项目进行监控。
  • 无代码生成和xml配置:主要通过条件注解来实现。

SpringBoot会根据在类路径中的jar包,类、为jar包里面的类自动配置Bean,这样会极大地减少我们要使用的配置。当然,SpringBoot只考虑大多数的开发场景,并不是所有的场景,若在实际开发中我们需要配置Bean,而SpringBoot灭有提供支持,则可以自定义自动配置。
5、准生产的应用监控
SpringBoot提供基于http ssh telnet对运行时的项目进行监控。
6、无代码生产和xml配置  
SpringBoot不是借助与代码生成来实现的,而是通过条件注解来实现的,这是Spring4.x提供的新特性。
三、SpringBoot优缺点
优点:
1、快速构建项目。
2、对主流开发框架的无配置集成。
3、项目可独立运行,无须外部依赖Servlet容器。
4、提供运行时的应用监控。
5、极大的提高了开发、部署效率。
6、与云计算的天然集成。
缺点:
1、如果你不认同spring框架,也许这就是缺点。
四、SpringBoot特性
1、创建独立的Spring项目
2、内置Tomcat和Jetty容器
3、提供一个starter POMs来简化Maven配置
4、提供了一系列大型项目中常见的非功能性特性,如安全、指标,健康检测、外部配置等
5、完全没有代码生成和xml配置文件
五、SpringBoot快速搭建
网址:;
六、SpringBoot CLI
SpringBoot CLI 是SpringBoot提供的控制台命令工具。
七、SpringBoot maven 构建项目
spring-boot-starter-parent:是一个特殊Start,它用来提供相关的Maven依赖项,使用它之后,常用的包依赖可以省去version标签。
八、SpringBoot几个常用的注解
(1)@RestController和@Controller指定一个类,作为控制器的注解 
(2)@RequestMapping方法级别的映射注解,这一个用过Spring MVC的小伙伴相信都很熟悉 
(3)@EnableAutoConfiguration和@SpringBootApplication是类级别的注解,根据maven依赖的jar来自动猜测完成正确的spring的对应配置,只要引入了spring-boot-starter-web的依赖,默认会自动配置Spring MVC和tomcat容器 
(4)@Configuration类级别的注解,一般这个注解,我们用来标识main方法所在的类,完成元数据bean的初始化。 
(5)@ComponentScan类级别的注解,自动扫描加载所有的Spring组件包括Bean注入,一般用在main方法所在的类上 
澳门新濠3559,(6)@ImportResource类级别注解,当我们必须使用一个xml的配置时,使用@ImportResource和@Configuration来标识这个文件资源的类。 
(7)@Autowired注解,一般结合@ComponentScan注解,来自动注入一个Service或Dao级别的Bean 
(8)@Component类级别注解,用来标识一个组件,比如我自定了一个filter,则需要此注解标识之后,Spring Boot才会正确识别。

  简单的说,spring boot就是整合了很多优秀的框架,不用我们自己手动的去写一堆xml配置然后进行配置。

缺点
  1. 依赖太多:一个简单的SpringBoot应用都有好几十M只有;
  2. 缺少监控集成方案、安全管理方案:只提供基础监控,要实现生产级别的监控,监控方案需要自己动手解决;(后期讲解soringCloud时,会结合pinpoint和skywalking分布式链路工具进行应用监控)

这里使用maven进行项目搭建,有几种搭建方式1、

 

  从本质上来说,Spring Boot就是Spring,它做了那些没有它你也会去做的Spring Bean配置。它使用“习惯优于配置”(项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理念让你的项目快速运行起来。使 用Spring Boot很容易创建一个独立运行(运行jar,内嵌Servlet容器)、准生产级别的基于Spring框架的项目,使用Spring Boot你可以不用或者只需要很少的Spring配置。

工程搭建

使用的工具为:Spring Tool Suite(3.9.3.RELEASE)SpringBoot:1.5.14.RELEASE

Spring Tool Suite 下载地址:

利用Spring Initializr进行快速创建项目

  • 选择Dashboard-->CREATE SPRING STARTER PROJECT进行创建项目,或者可以选择file-->new-->Spring Starter Project,打开创建面板

第一种方式:

澳门新濠3559 1image

第二种方式:

澳门新濠3559 2image

  • 出现创建面板,填写项目信息

这里url建议直接填写:https://start.spring.io(默认是http方式)

澳门新濠3559 3image

maven相关命名说明

  1. Group:一般为逆向域名格式,如本博客域名为lqdev.cn,则group一般以cn.lqdev开头
  2. Artifact:唯一标识,一般为项目名称。具体maven相关信息,可自行搜索,这里只简单阐述
  • 选择依赖包和版本

澳门新濠3559 4image

除此下载包时,可能会比较慢,建议替换成阿里云的maven镜像

- src -main -java -cn.lqdev.learning.springboot.chapter1 #主函数,启动类,运行它如果运行了 Tomcat、Jetty、Undertow 等容器 -Chapter1Application -resouces #存放静态资源 js/css/images 等 - statics #存放 html 模板文件 - templates #主要的配置文件,SpringBoot启动时候会自动加载application.properties/bootstrap.properties - application.properties #测试文件存放目录 -test # pom.xml 文件是Maven构建的基础,里面包含了我们所依赖JAR和Plugin的信息- pom

澳门新濠3559 5image

由于使用了Spring Initializr直接创建项目,相关依赖自动添加好了。

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.lqdev.learning</groupId> <artifactId>springboot-chapter1</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>chapter-1</name> <description>Spring Boot | 第一章:第一个Springboot应用</description> <!-- Springboot的版本,大家选择时,应该选择 RELEASE 版本 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.14.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <!-- 内嵌了tomcat服务器,开发简单的web应用,此依赖即可 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- 测试包 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>

/** * 启动类 * @author oKong * */@SpringBootApplicationpublic class Chapter1Application { public static void main(String[] args) { SpringApplication.run(Chapter1Application.class, args); }}

/** * 第一个springboot应用 * @author oKong * *///@RestController = @Controller   @ResponseBody 默认直接返回json@RestControllerpublic class DemoController { @RequestMapping(value = "/demo", method = RequestMethod.GET) public String demo() { return "hello,SpringBoot!"; }}

直接Chapter1Application,右键 run as --> Spring Boot App 即可。

看见以下提示,说明启动成功:

2018-07-11 22:47:38.170 INFO 15396 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port: 8080 

简单说明

  1. springboot 默认的端口号为:8080,此时浏览器访问:127.0.0.1:8080/demo即可查看。
  2. 需要修改默认端口号时及上下文路径时,只需要在application.properties设置以下属性:
# 端口号server.port=8888# 应用上下文路径server.context-path=/chapter1

访问:

澳门新濠3559 6image

自此,一个简单的SpringBoot就开发完成了。比起原来的springmvc时的开发效率,简直是一个质的飞跃,无需再烦扰烦人的xml配置文件了。终于可以快乐的撸代码了~

2、IDE下直接创建,推荐使用STS(Spring Tool Suite)、IntelliJ IDEA均支持直接搭建,STS是Spring基于eclipse进行二次开发的工具。

spring 启动方式

Spring Boot精要

Spring将很多魔法带入了Spring应用程序的开发之中,其中最重要的是以下四个核心。

  • 自动配置:针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置
  • 起步依赖:告诉Spring Boot需要什么功能,它就能引入需要的库。
  • 命令行界面:这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统项目构建。
  • Actuator:让你能够深入运行中的Spring Boot应用程序,一探究竟。

澳门新濠3559 7

  动态语言:不需要编译,直接运行,比如JS。

  静态语言:先编译再运行。

  配置指的是xml配置,低下的开发效率指的是编写完代码之后需要进行大量的xml配置,但是单从写代码而言,Java开发效率还是比较高的,因为有许多写好的第三方jar包。

 

  微服务:将子系统拆成一个一个的jar包运行就是微服务。

 

2.优缺点

澳门新濠3559 8

 

 

 ---------------------------第二种认识-------------------------

1 . springboot简单介绍(

        现在的web项目几乎都会用到spring框架,而要使用spring难免需要配置大量的xml配置文件,而 springboot的出现解   决了这一问题,一个项目甚至不用部署到服务器上直接开跑,真像springboot所说:“just run”。

        springboot的很多默认编码方式都是utf-8,真是福利啊。

    org.spring 2013年新开发的框架springboot , 它让一个单独项目的创建变得更加的简单,让所有依赖spring的程序可以做到“just run”。springboot提供大量第三方libraries让我们可以非常轻松的开始创建一个spring工程,甚至不需要再去配置一些繁琐的 xml配置文件

    框架特点:

    1:创建独立的spring应用。

    2:嵌入Tomcat, Jetty Undertow 而且不需要部署他们。

    3:提供的“starters”poms来简化Maven配置

    4:尽可能自动配置spring应用。

    5:提供生产指标,健壮检查和外部化配置

    6:绝对没有代码生成和XML配置要求

 

总结

目前互联网上很多大佬都有springboot系列教程,如有雷同,请多多包涵了。本文是作者在电脑前一字一句敲的,每一步都是亲身实际过的。若文中有所错误之处,还望提出,谢谢。

Spring Tool Suite :新建Spring Initializr项目,填写项目信息和选择技术,将项目设置成maven项目。

CLI启动 如:

2.SpringBoot运行环境

Spring Boot最新版可以运行在Java6 的环境下,但是Spring官方建议使用Java8。

Servlet 容器

Name Servlet Version Java Version
Tomcat 8 3.1 Java 7
Tomcat 7 3.0 Java 6
Jetty 9 3.1 Java 7
Jetty 8 3.0 Java 6
Undertow 1.1 3.1 Java 7

老生常谈

  • 个人QQ:499452441
  • 微信公众号:lqdevOps

澳门新濠3559 9公众号

个人博客:

IntelliJ IDEA:新建Spring Starter project,填写项目信息和选择技术完成maven工程创建。

 Spring Boot 以 jar 包方式运行在后台

3.pringBoot支持哪些应用

使用SpringBoot可以快速创建普通Java项目和Web项目,以及其他项目。

Spring Boot application starters

Name Description
spring-boot-starter The core Spring Boot starter, including auto-configuration support, logging and YAML.
spring-boot-starter-actuator Production ready features to help you monitor and manage your application.
spring-boot-starter-amqp Support for the “Advanced Message Queuing Protocol” via spring-rabbit.
spring-boot-starter-aop Support for aspect-oriented programming including spring-aop and AspectJ.
spring-boot-starter-artemis Support for “Java Message Service API” via Apache Artemis.
spring-boot-starter-batch Support for “Spring Batch” including HSQLDB database.
spring-boot-starter-cache Support for Spring’s Cache abstraction.
spring-boot-starter-cloud-connectors Support for “Spring Cloud Connectors” which simplifies connecting to services in cloud platforms like Cloud Foundry and Heroku.
spring-boot-starter-data-elasticsearch Support for the Elasticsearch search and analytics engine including spring-data-elasticsearch.
spring-boot-starter-data-gemfire Support for the GemFire distributed data store including spring-data-gemfire.
spring-boot-starter-data-jpa Support for the “Java Persistence API” including spring-data-jpa, spring-orm and Hibernate.
spring-boot-starter-data-mongodb Support for the MongoDB NoSQL Database, including spring-data-mongodb.
spring-boot-starter-data-redis Support for the REDIS key-value data store, including spring-data-redis.
spring-boot-starter-data-rest Support for exposing Spring Data repositories over REST via spring-data-rest-webmvc.
spring-boot-starter-data-solr Support for the Apache Solr search platform, including spring-data-solr.
spring-boot-starter-freemarker Support for the FreeMarker templating engine.
spring-boot-starter-groovy-templates Support for the Groovy templating engine.
spring-boot-starter-hateoas Support for HATEOAS-based RESTful services via spring-hateoas.
spring-boot-starter-hornetq Support for “Java Message Service API” via HornetQ.
spring-boot-starter-integration Support for common spring-integration modules.
spring-boot-starter-jdbc Support for JDBC databases.
spring-boot-starter-jersey Support for the Jersey RESTful Web Services framework.
spring-boot-starter-jta-atomikos Support for JTA distributed transactions via Atomikos.
spring-boot-starter-jta-bitronix Support for JTA distributed transactions via Bitronix.
spring-boot-starter-mail Support for javax.mail.
spring-boot-starter-mobile Support for spring-mobile.
spring-boot-starter-mustache Support for the Mustache templating engine.
spring-boot-starter-security Support for spring-security.
spring-boot-starter-social-facebook Support for spring-social-facebook.
spring-boot-starter-social-linkedin Support for spring-social-linkedin.
spring-boot-starter-social-twitter Support for spring-social-twitter.
spring-boot-starter-test Support for common test dependencies, including JUnit, Hamcrest and Mockito along with the spring-testmodule.
spring-boot-starter-thymeleaf Support for the Thymeleaf templating engine, including integration with Spring.
spring-boot-starter-velocity Support for the Velocity templating engine.
spring-boot-starter-web Support for full-stack web development, including Tomcat and spring-webmvc.
spring-boot-starter-websocket Support for WebSocket development.
spring-boot-starter-ws Support for Spring Web Services.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

澳门新濠3559 10

3、Spring Boot CLI工具,使用命令创建。

java -jar spring-boot01-1.0-SNAPSHOT.jar > log.file 2>&1 &

4、手工构建maven项目任意IDE新建空maven项目修改pom.xml添加Spring Boot的父级依赖Spring-boot-starter-parent,添加之后这个项目就是一个Spring Boot项目了。

 如果8080端口被占用,则:

案例一:通过IDE直接生成SpringBoot项目1.Create New Project 新建项目

netstat -ano|findstr 8080 
taskkill /pid 2552 -f

澳门新濠3559 11image.png

 

2.选择新建Spring Initializr项目

澳门新濠3559 12image.png

3.填入Group和Artifact

澳门新濠3559 13image.png

4.默认Core即可

澳门新濠3559 14image.png

5.Finish,即创建完毕SpringBoot项目

澳门新濠3559 15image.png

6.最终效果如下

澳门新濠3559 16image.png

案例二:手工构建maven项目并通过修改pom.xml,增加SpringBoot配置,进而使得项目变成SpringBoot项目

1.创建Maven项目

澳门新濠3559 17image.png

2.填入Group和Artifact

澳门新濠3559 18image.png

3.Finish,创建完毕Maven项目

澳门新濠3559 19image.png

4.修改Maven项目pom.xml文件,添加SpringBoot配置<project标签下,增加父级依赖Spring-boot-starter-parent

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --></parent>

补充:Spring-boot-starter-parent是一个特殊的starter,用来提供相关的maven默认依赖,使用之后,常用的包依赖可以省略version标签。

5.增加web支持

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>RELEASE</version> <scope>compile</scope></dependency>

6.增加编译插件

<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins></build>

6.新建SpringbootApplication类,并加入@SpringBootApplication注解,代表开启Spring Boot自动配置

@RestController@SpringBootApplicationpublic class SpringbootApplication { public static void main(String[] args) { SpringApplication.run(SpringbootApplication.class, args); } @RequestMapping String index(){ return "Hello My Spring Boot Demo"; }}

7.测试效果启动项目,浏览器输入

澳门新濠3559 20image.png

目录导航个人站点首发

编辑:编程 本文来源:1、独立运行Spring项目,Boot你可以不用或者只需要

关键词: 澳门新濠3559