`
wbj0110
  • 浏览: 1614405 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

使用Spring-boot快速启动Spring应用

阅读更多

Spring-boot 项目提供了快速启动一个Spring项目,假设一个使用Hibernate2的CRUD的web应用项目,Maven配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<project ...

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>0.5.0.BUILD-SNAPSHOT</version>
</parent>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring3</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency> 
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<scope>runtime</scope>
</dependency> 
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
<scope>test</scope>
</dependency> 
</dependencies>

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

</project>

而如果你使用传统方式配置Maven项目,将是下面可怕的配置:

.....

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
<version>1.2.1</version>
</dependency>

<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
<!-- dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency> 
<dependency>
<groupId>net.sf.flexjson</groupId>
<artifactId>flexjson</artifactId>
<version>2.0</version>
</dependency>
<!-- Spring dependencies -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>${h2.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate.version}</version>
<exclusions>
<exclusion>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
</exclusion>
<exclusion>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.3.0.Final</version>
<exclusions>
<exclusion>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
</dependency>

<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.5.4</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency> 
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.3</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
<exclusion>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
</exclusion>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xerces</artifactId>
</exclusion>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
</exclusion>
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Jackson JSON Processor -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-jaxb-annotations</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-core</artifactId>
<version>2.2.1</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.tiles</groupId>
<artifactId>tiles-jsp</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
<version>2.0</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.1</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>${spring-security.version}</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${spring-security.version}</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${spring-security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>${spring-security.version}</version>
</dependency>
<dependency>
<groupId>com.googlecode.flyway</groupId>
<artifactId>flyway-core</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>${spring-data-jpa.version}</version>
</dependency>

</dependencies>
...

 

使用SpringBoot的好处有:

1.使用mvn spring:boot直接启动一个Web应用。
它提供了一种classpath中可用的嵌入式Tomcat或Jetty容器和自动配置应用,而无需提供任何明确的配置,由用户库的基础上快速地运行应用程序 - 例如。如果发现HSQLDB库在classpath中,它会自动配置数据源与HSQLDB作为嵌入式数据库,如果在classpath中发现thymeleaf jar,它会自动配置thymeleaf作为模板引擎,如果发现Hibernate库在classpath中,那么它会自动使用休眠作为JPA提供者。

 

2.提供缺省的依赖。

提供了一个必需的以及测试的依赖,还有Spring生态系统的相关项目。例如。与SLF4J的logback作为测试依赖,使用的Servlet 3.0+的API,杰克逊Jackson 2.2对JSON处理,网页模板thymeleaf.

分享到:
评论

相关推荐

    jasypt-spring-boot-starter 3.0.5依赖的pom及jar

    总的来说,jasypt-spring-boot-starter 3.0.5为Java开发者提供了一个高效且安全的方式来管理和使用加密数据,简化了Spring Boot应用中的安全实践。通过深入理解POM文件中的依赖关系和JAR文件中的实现细节,我们可以...

    spring-boot-starter-parent-1.5.13.RELEASE.zip

    - 便捷的依赖引入:通过Starter模块,如`spring-boot-starter-web`,可以快速添加常用功能的依赖。 总的来说,这个压缩包是Spring Boot开发者在构建项目时的重要资源,它提供了一个标准化的构建环境,并简化了依赖...

    解析spring-boot-starter-parent简介

    在使用spring-boot-starter-parent时,开发者可以通过配置Java版本、编码和源代码相关的设置来覆盖默认的配置。例如,开发者可以在pom.xml文件中添加以下配置来指定Java版本: &lt;java.version&gt;1.8 spring-boot-...

    spring-boot-starter-web.jar

    Spring Boot 是在 Spring 的基础上创建一款开源框架,它提供了 spring-boot-starter-web(Web 场景启动器) 来为 Web 开发予以支持。spring-boot-starter-web 为我们提供了嵌入的 Servlet 容器以及 SpringMVC 的依赖...

    009 maven插件spring-boot-maven-plugin

    spring-boot:repackage 是 Spring Boot Maven Plugin 提供的一个 Goal,用于重新打包可执行的存档。该 Goal 需要指定以下参数: * finalName:存档的名称 * classifier:存档的分类器 * outputDirectory:存档的...

    spring-boot 所有jar包

    4. **命令行界面(CommandLine Interface, CLI)**:Spring Boot提供了命令行工具,用于快速启动和运行Spring应用。 5. **健康检查和Actuators**:Spring Boot提供了一组端点,用于监控和管理应用程序的健康状态,...

    spring-boot-parent.rar

    总之,"spring-boot-parent.rar" 提供了一个模板,帮助开发者快速建立一个遵循最佳实践的Spring Boot多模块项目。通过研究这个项目,你可以更好地理解Spring Boot的依赖管理、父项目的作用,以及如何组织复杂的Java...

    spring-boot-samples-master

    1. **基础设置**:包括最基本的Spring Boot应用启动,如"spring-boot-sample-basic",它展示了如何创建一个简单的"Hello, World!"应用程序,解释了Spring Boot的启动类和自动配置机制。 2. **Web应用**:"spring-...

    spring-boot-cli下载

    我们来详细了解一下`spring-boot-cli-2.0.0.M1-bin.zip`这个压缩包以及其中的`spring-2.0.0.M1`文件。 首先,`2.0.0.M1`代表的是Spring Boot的里程碑版本(Milestones),这是在正式版本发布前的一个预览版,用于...

    spring-boot-reference2018最新版

    Spring Boot应用可以通过Maven或Gradle进行构建,使用`spring-boot-maven-plugin`或`spring-boot-gradle-plugin`插件,可以实现一键打包成可执行的JAR或WAR文件。 7. **YAML与Properties配置** Spring Boot支持...

    spring-boot-cli-2.2.6.RELEASE-bin.zip

    这个“spring-boot-cli-2.2.6.RELEASE-bin.zip”文件是一个专门为Windows用户准备的安装包,包含了运行和开发Spring Boot应用所需的所有工具。 Spring Boot的核心理念是简化Spring应用程序的初始设置和配置。2.2.6....

    spring-boot-starter-mybatis-spring-boot-1.0.2.zip

    总之,"spring-boot-starter-mybatis-spring-boot-1.0.2.zip"压缩包提供了一个方便的Spring Boot与MyBatis集成方案,通过简单的步骤,我们可以在Spring Boot应用中便捷地使用MyBatis进行数据库操作。这个版本适用于...

    spring-boot-starter-hbase自定义的spring-boot的hbasestarter

    首先,`spring-boot-starter-hbase`是一个针对HBase定制的Spring Boot启动器,它的主要目的是提供一个便捷的API接口,使得开发者能够在Spring Boot环境中对HBase进行查询、更新等操作,而无需关心复杂的底层配置和...

    spring-boot-cli-2.0.3.RELEASE-bin.zip

    1. 首先,你需要下载与操作系统匹配的`spring-boot-cli-2.0.3.RELEASE-bin.zip`文件,解压缩后将bin目录添加到PATH环境变量中,以便于在命令行中直接使用`spring`命令。 2. 安装完成后,可以在命令行中运行`spring -...

    Spring-boot jar Spring-boot所需jar包

    它包含了运行 Spring Boot 应用所需的所有依赖,包括 Spring MVC 在内,这样用户可以直接通过 `java -jar springboot.jar` 命令来启动应用,无需进行额外的构建步骤或管理依赖。这种打包方式极大地简化了部署流程,...

    spring-boot-demo

    首先,"spring-boot-demo"项目是一个简单的小型示例,通常包含了一个基础的Spring Boot应用结构。这样的项目有助于我们理解Spring Boot如何快速构建一个功能完整的应用。项目的名称暗示了我们将接触到Spring Boot的...

    graphql-spring-boot-starter, GraphQL的Spring Boot starter.zip

    graphql-spring-boot-starter, GraphQL的Spring Boot starter GraphQL Spring Boot 启动器这是一个用于 GraphQL Java插件项目的Spring Boot 起始。目录概述正在开始运行。版本管理行为准则。捐赠计划确认许可协议...

    参照阿里druid整理druid-spring-boot-starter的demo

    在Spring Boot框架中,`druid-spring-boot-starter`是一个便捷的启动器,用于简化Druid的集成过程。通过引入这个启动器,我们可以快速地在Spring Boot项目中配置并使用Druid数据库连接池。`druid-spring-boot-...

    spring-boot spring-security-oauth2 完整demo

    本篇文章将围绕“spring-boot spring-security-oauth2 完整demo”这一主题,详细阐述这三个框架如何协同工作,以及如何通过类似微信的方式获取token并访问资源。 首先,Spring Boot是基于Spring框架的快速开发工具...

    springboot2.0.x+dubbo-spring-boot-starter

    2. **启动器(Starter)**:理解 `com.alibaba.boot:dubbo-spring-boot-starter` 这个依赖的作用,它是 Dubbo 对 Spring Boot 的适配器,负责自动配置和服务发现。 3. **服务提供者(Provider)**:创建服务提供者...

Global site tag (gtag.js) - Google Analytics