spring boot笔记

    xiaoxiao2021-03-25  117

    一.spring boot介绍

    spring Boot是Spring社区较新的一个项目。该项目的目的是帮助开发者更容易的创建基于Spring的应用程序和服务,让更多人的人更快的对Spring进行入门体验,让Java开发也能够实现Ruby on Rails那样的生产效率。为Spring生态系统提供了一种固定的、约定优于配置风格的框架。

           

    Spring Boot具有如下特性:

    为基于Spring的开发提供更快的入门体验开箱即用,没有代码生成,也无需XML配置。同时也可以修改默认值来满足特定的需求。提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等。Spring Boot并不是不对Spring功能上的增强,而是提供了一种快速使用Spring的方式。 二.搭建spring boot项目

    Spring Boot建议使用Maven或Gradle,本文以Maven为例。

    首先创建一个一般的Maven项目,有一个pom.xml和基本的src/main/java结构。

    2.1 增加<parent>,在pom.xml文件中添加如下内容

    在<project>内<dependencies>外添加以下代码:

    <parent>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-parent</artifactId>      <version>1.2.2.RELEASE</version> </parent>

    这段代码继承spring-boot-starter-parent项目来获取合适的默认设置。该父项目提供以下特性:

    默认编译级别为Java 1.6 源码编码为UTF-8 一个依赖管理节点,允许你省略普通依赖的<version>标签,继承自spring-boot-dependencies POM。 合适的资源过滤 合适的插件配置(exec插件,surefire,Git commit ID,shade) 针对application.properties和application.xml的资源过滤 2.2 添加spring-boot-starter-web依赖 在< dependencies></dependencies>节点内添加如下代码:

    <dependency> <groupId>org.springframework.boot</groupId>     <artifactId>spring-boot-starter-web</artifactId> </dependency>

    Spring通过添加spring-boot-starter-*这样的依赖就能支持具体的某个功能。我们这个示例最终是要实现web功能,所以添加的是这个依赖。

    2.3 添加spring-boot-maven-plugin插件

    该插件支持多种功能,常用的有两种,第一种是打包项目为可执行的jar包。

    在项目根目录下执行mvn package将会生成一个可执行的jar包,jar包中包含了所有依赖的jar包,只需要这一个jar包就可以运行程序,使用起来很方便。该命令执行后还会保留一个XXX.jar.original的jar包,包含了项目中单独的部分。

    生成这个可执行的jar包后,在命令行执行java -jar xxxx.jar即可启动项目。

    另外一个命令就是mvn spring-boot:run,可以直接使用tomcat(默认)启动项目。

    <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <version>1.2.5.RELEASE</version> </dependency> </dependencies> </plugin> </plugins> </build>

    2.4 在我们开发过程中,我们需要经常修改,为了避免重复启动项目,我们可以启用热部署。

    Spring-Loaded项目提供了强大的热部署功能,添加/删除/修改 方法/字段/接口/枚举 等代码的时候都可以热部署,速度很快,很方便。

    想在Spring Boot中使用该功能非常简单,就是在spring-boot-maven-plugin插件下面添加依赖:

    <dependencies>     <dependency>         <groupId>org.springframework</groupId>         <artifactId>springloaded</artifactId>         <version>1.2.5.RELEASE</version>     </dependency> </dependencies>

    添加以后,通过mvn spring-boot:run启动就支持热部署了。

    注意:使用热部署的时候,需要IDE编译类后才能生效,你可以打开自动编译功能,这样在你保存修改的时候,类就自动重新加载了。

    2.5 创建一个应用类

    我们创建一个Application类,代码如下:

    @RestController @EnableAutoConfiguration public class Application {

        @RequestMapping("/")     String home() {         return "Hello World!";     }

       public static void main(String[] args) {         SpringApplication.run(Example.class, args);     } }

    注:Spring Boot建议将我们main方法所在的这个主要的配置类配置在根包名下。

    类似如下结构: com  +- example      +- myproject          +- Application.java          |          +- domain          |   +- Customer.java          |   +- CustomerRepository.java          |          +- service          |   +- CustomerService.java          |          +- web              +- CustomerController.java

    @RestController

    因为我们例子是写一个web应用,因此写的这个注解,这个注解相当于同时添加@Controller和@ResponseBody注解。

    @EnableAutoConfiguration

    Spring Boot建议只有一个带有该注解的类。

    @EnableAutoConfiguration作用:Spring Boot会自动根据你jar包的依赖来自动配置项目。例如当你项目下面有HSQLDB的依赖时,Spring Boot会创建默认的内存数据库的数据源DataSource,如果你自己创建了DataSource,Spring Boot就不会创建默认的DataSource。

    如果你不想让Spring Boot自动创建,你可以配置注解的exclude属性,例如:

    @Configuration @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}) public class MyConfiguration { }

    @SpringBootApplication

    由于大量项目都会在主要的配置类上添加@Configuration,@EnableAutoConfiguration,@ComponentScan三个注解。

    因此Spring Boot提供了@SpringBootApplication注解,该注解可以替代上面三个注解(使用Spring注解继承实现)。

    2.6 运行

    在IDE中直接直接执行main方法,然后访问http://localhost:8080即可。

    另外还可以用上面提到的mvn,可以打包为可执行jar包,然后执行java -jar xxx.jar。

    或者执行mvn spring-boot:run运行项目。

    更多关于spring boot的内容讲解,请参考以下地址:

    http://www.jianshu.com/p/7590683260c8

    http://www.jianshu.com/p/cb0f96958919

    转载请注明原文地址: https://ju.6miu.com/read-11227.html

    最新回复(0)