一、Spring时代变换 

  1. Spring1.x 时代

  Spring初代都是通过xml文件配置bean,随着项目的不断扩大,繁琐的xml配置,混乱的依赖关系,难用的bean装配方式,由此衍生了spring2.x时代的变化

  2. Spring2.x时代

  随着JDK 1.5带来的注解支持,Spring2.x可以使用注解对Bean进行声明,注入和装配,简化了xml的配置和bean的装配;

  旧时代Spring的最佳实践:

  2.1、  应用的基本配置用xml,比如:数据源、资源文件等;

  2.2、  业务开发用注解,比如:Service中注入bean等;

  3、Spring3.x, 4.x时代

  Spring3.x,4.x和Spring boot都推荐使用自动配置的方式,即免去了很多注解和xml配置,通过Spring自动识别,自动完成配置的方式,来简化项目的开发。

二、SpringBoot的诞生

  随着动态语言Ruby,Groovy,Scala,Node.js的流行(什么是动态语言,即无需编译即可运行的语言,相比之下,Java属于静态语言),Java繁多的配置,复杂的部署流程和第三方技术集成的难度愈发变大。

  在此背景下,SpringBoot诞生了,虽然仍旧属于静态语言的一种,但是它倡导“习惯优于配置”(即使项目中存在繁多配置,但已经内置了一个习惯的配置,让用户无需手动配)的理念,得到了很多开发者的支持,因为可以摆脱复杂的部署流程使应用快速的跑起来。

  使用SpringBoot可以快速的创建一个独立运行的不依赖于任何容器(一个Jar包即是一个服务,内嵌Serverlet容器)的项目,减少开发过程中的配置,提高项目交付的效率。

  SpringBoot的优缺点:

  (1)快速构建开发项目

  (2)对主流框架的无配置集成

  (3)项目可独立运行,无需依赖外部Serverlet容器

  (4)提供运行时的监控

  (5)极大提高了开发,部署效率

  (6)与云计算的天然集成

三、第一个SpringBoot应用

  1、设置spring boot的parent 

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

  说明:Spring boot的项目必须要将parent设置为spring boot的parent,该parent包含了大量默认的配置,大大简化了我们的开发。

  2、导入SpringBoot的Web支持

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

  3、添加SpringBoot的插件 

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.3.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

  4、编写第一个SpringBoot支持的Web程序

@Controller
@SpringBootApplication
@Configuration
public class HelloApplication { @RequestMapping("hello")
@ResponseBody
public String hello(){
return "hello world!";
} public static void main(String[] args) {
SpringApplication.run(HelloApplication.class, args);
} }

  代码说明:

  (1)@SpringBootApplication:Spring Boot项目的核心注解,主要目的是开启自动配置。;

  (2)@Configuration:这是一个配置Spring的配置类;

  (3)@Controller:标明这是一个SpringMVC的Controller控制器;

  (4)main方法:在main方法中启动一个应用,即:这个应用的入口;

  5、出现如下运行日志和浏览器验证结果如下即为成功

  

  

 四、SpringBoot的页面重定向

@Controller
class IndexController { @RequestMapping("/")
public String index() {
return "forward:/someIndex.jsp";
}
} @Configuration
public class DefaultView extends WebMvcConfigurerAdapter{
@Override
public void addViewControllers( ViewControllerRegistry registry ) {
registry.addViewController( "/" ).setViewName( "forward:/yourpage.html" );
registry.setOrder( Ordered.HIGHEST_PRECEDENCE );
super.addViewControllers( registry );
}
}

SpringBoot简介及第一个应用的更多相关文章

  1. Springboot 1.简介 及第一个demo

    按照官网上的新建一个maven项目,然后将类引入pom.xml文件中 <?xml version="1.0" encoding="UTF-8"?> ...

  2. AngularJS 1.x系列:AngularJS简介及第一个应用(2)

    1. 安装AngularJS 1.1 AngularJS官网 Github源码:https://github.com/angular/angular.js 官网:https://angularjs.o ...

  3. 测试框架httpclent 1.HttpClient简介及第一个demo

    httpclient就是一个模拟 发送http请求的一个工具. 首先在pom.xml文件里面添加工具类 <dependencies> <dependency> <grou ...

  4. [原创]java WEB学习笔记04:Servlet 简介及第一个Servlet程序(配置注册servlet,生命周期)

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  5. 一、springBoot简介与环境搭建

    前言:学习计划 1.springBoot环境搭建 2.springBoot入门 3.srpingBoot整合Mybatis 4.springBoot整合Redis,Redis集群 5.springBo ...

  6. SpringBoot简介与快速入门

    一.SpringBoot简介 1.1 原有Spring优缺点分析 1.1.1 Spring的优点分析 Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE ...

  7. Springboot(一)springboot简介与入门程序

    一.springboot简介: 对spring框架盛行了多年的java方向开发人员来说,每个人java开发已经把spring框架当做开发中不可或缺的一部分. 之前传统的模式都是以application ...

  8. springboot----一、SpringBoot简介

    一.SpringBoot简介 1.1.回顾什么是Spring Spring是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架,作者:Rod Johnson . Spring是为了解决企业 ...

  9. ArcGIS API for JavaScript开发环境搭建及第一个实例demo

    原文:ArcGIS API for JavaScript开发环境搭建及第一个实例demo ESRI公司截止到目前已经发布了最新的ArcGIS Server for JavaScript API v3. ...

随机推荐

  1. 关于Unity中的几何体,材质和FBX模型

    一.创建几何体的类型 1: 创建平面 Plane;2: 创建立方体 Cube;3: 创建球体 Sphere;4: 创建胶囊体 Capsule;5: 创建圆柱体 Cylinder;6: 3D文字 3D ...

  2. tensorflow 保存训练模型ckpt 查看ckpt文件中的变量名和对应值

    TensorFlow 模型保存与恢复 一个快速完整的教程,以保存和恢复Tensorflow模型. 在本教程中,我将会解释: TensorFlow模型是什么样的? 如何保存TensorFlow模型? 如 ...

  3. 31Mybatis_mybatis和spring整合-mapper代理开发

    案例结构图:

  4. JDBC中,用于表示数据库连接的对象是。(选择1项)

    JDBC中,用于表示数据库连接的对象是.(选择1项) A.Statement B.Connection C. DriverManager D.PreparedStatement 解答:B

  5. 【BZOJ】1653: [Usaco2006 Feb]Backward Digit Sums(暴力)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1653 看了题解才会的..T_T 我们直接枚举每一种情况(这里用next_permutation,全排 ...

  6. HTML 标签 参考手册

    按功能类别排列 基础 标签 描述 <!DOCTYPE>  定义文档类型. <html> 定义 HTML 文档. <title> 定义文档的标题. <body& ...

  7. PowerShell中的配置文件

    http://www.cnblogs.com/ceachy/archive/2013/03/01/PowerShell_Profile.html

  8. XAML 中使用空格键(空白字符)

    默认情况下,XAML折叠所有空白,这意味着包含空格.tab 键以及回车的长字符串将被转换为单个空格.而且,如果在一个元素内容之前或之后添加空白,这个空格将被完全忽略. 有时这并不是所期望的结果.例如, ...

  9. webstorm配置内存参数,解决卡顿

    找到WebStorm.exe.vmoptions这个文件,路径如下webstorm安装主目录>bin>WebStorm.exe.vmoptions更改为第二行:-Xms526m第三行:-X ...

  10. 自动交互式脚本--expect

    我们经常会遇到一些需要与服务器程序打交道的场景,比如,从登陆某个服务器,然后进行某项工作.这很平常,但是如果把这个工作自动化进行,你就需要一个程序能自动做你要告诉机器的事情,这样,我们的expect就 ...