赞
踩
在熟悉Spring Boot工程之前先搭建一个Spring + SpringMVC的工程,需要如下几步:
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <log4j.version>2.5</log4j.version> <jstl.version>1.2</jstl.version> <spring.version>4.2.3.RELEASE</spring.version> </properties> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>${jstl.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:conf/spring/applicationContext.xml</param-value> </context-param> <listener> <description>Spring监听器</description> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>spring-mvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring-mvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd"> <context:component-scan base-package="com.mengday.platform.web.controller" /> <bean id="ViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/"></property> <!-- 视图文件的前缀 --> <property name="suffix" value=".jsp"></property> <!-- 视图文件的后缀名 --> <!-- view是用什么显示,这里是jsp,还可以用velocity之类的 --> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property> </bean> </beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd">
</beans>
@Controller
public class HelloWorldController {
@RequestMapping("/index")
public String index(){
return "index";
}
}
在pom.xml中需要添加很多依赖(言外之意:能不能少添加点依赖呢?)
需要配置web.xml、spring-servlet.xml、applicatonContext.xml等配置文件,可以看到仅仅是集成一个mvc的功能就要配置这三个文件(言外之意:配置文件真多),而且这些配置几乎全部在每个项目都是相同的配置,只是个别值不同(言外之意:能不能不配置,让框架自己去配置,具体配置的值都采用大家通用的常用的值,如果默认的值不满足条件,提供一个配置文件去让外界去覆盖掉,采用约定大于配置的方式)
配置外部tomcat(言外之意:还要配置一下tomcat,能不能像普通Java程序一样,直接运行main方法就可以了呢 ?)
Spring缺点: 配置繁琐,各种XML、Annotation配置,如果出错了也很难找出原因。
Spring Boot的项目也是基于maven或者gradle的,有两种方式:一种是通过IDE创建(ide也是基于官网的,只不过帮你自动下载并使用ide帮你打开了),一种是在官网上创建https://start.spring.io, github地址:https://github.com/spring-projects/spring-boot/
@RestController
public class HelloWorldController {
@RequestMapping("/index")
public String index(){
return "suceess";
}
}
访问http://localhost:8080/index
在浏览器上直接输入https://start.spring.io,只需要Dependencies中输入Web选中即可(输入Web就是集成SpringMVC功能,如果不需要可以什么都不输入,后面如果需要集成SpringMVC的话也是超级very很简单的),然后生成项目(即下载项目),然后使用idea打开即可
此种方式还要跑到官网,下载项目,然后再使用idea open项目,如果使用idea就不需要这些步骤,会自动下载帮你打开。
可以看到传统SpringMVC的集成方式和使用Spring Boot的搭建方式有什么不同,最大的特点就是快,没有那么多的配置,可以说是零配置,不像传统SpringMVC项目,要配置很多东西,虽然这些东西都是从别的地方复制过来的,完成起来也需要几分钟时间,肯能还会出错,都是一些体力活,创建一个Spring Boot项目只需要几秒钟就能搞定,而且不会出错,也不需要任何配置。
Spring Boot项目就是为了解决Spring配置繁琐的问题,最大化的实现约定大于配置(convention over configuration),以最快的速度来搭建项目,采用注解配置来替换xml配置。
传统web maven项目使用的是maven-archetype-webapp骨架,打包方式是使用的war包
Spring Boot的打包方式是使用的jar包
传统web项目是引入多个单独的依赖
Spring Boot是引入的spring-boot-starter, 在spring boot中大部分依赖不需要指定version,因为版本号已经在spring-boot-starter-parent中定义过了
传统的web项目中src/main/java下是没有类的,Spring Boot项目中有一个启动类(Project名称+Application), 而且在src/test/java中也有一个测试类(Project名称+ApplicationTest)
传统的web项目有src/main/webapp/WEB-INF/web.xml, Spring Boot中没有web.xml
传统的web项目resources的目录是空的,Spring Boot项目中resources中有static、templates目录和一个配置文件application.properties
传统web项目是启动tomcat
Spring Boot项目是直接运行main方法或者直接运行jar(java -jar .jar)
集成框架非常简单,例如集成SpringMVC,只需引入spring-boot-starter-web这一个依赖,也不需要做任何配置,这样集成起来非常快速方便。Spring Boot支持很多常用的框架集成, 如 log、test、mybatis、nosql、mq、模板技术(thymeleaf、freemark)、jpa、aop、actuator 等, 具体请查看Starter POMs、 Starter POMs
引入的依赖的数量很少,例如要引入测试依赖JUnit、Hamcrest、Mockito只需要引入spring-boot-starter-test这一个依赖就行了
自动化配置,使用默认配置,再也不需要applicationContext.xml等配置文件了
支持自定义配置,可以配置在application.yml或者Config类中,如果自定义了就使用自定义的值,没有自定义的则使用默认的值
运行更加简单,直接使用java -jar 命令,或者直接在IDE中运行main方法
内置运维的该功
原文链接:https://blog.csdn.net/vbirdbest/article/details/79573740
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。