一、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. [Java] 高效快速导入EXCEL数据

    需求1.高效率的以excel表格的方式导入多条数据.2.以身份证号为唯一标识,如果身份证号已存在,则该条数据不导入. 分析刚开始的时候是传统的做法,解析excel数据,获取单个对象,判断身份证是否已存 ...

  2. qt 使用多个ui文件

    一般的QT工程只有一个ui,本文记录如何在一个工程中使用多个ui文件. 参考链接: http://www.cnblogs.com/lc-cnblong/p/3182903.html 创建方法,鼠标在工 ...

  3. 【BZOJ】2440: [中山市选2011]完全平方数(莫比乌斯+容斥原理+二分)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2440 我觉得网上很多题解都没说清楚...(还是我太弱了? 首先我们可以将问题转换为判定性问题,即给出 ...

  4. php和js实现文件拖拽上传

    Dropzone.js实现文件拖拽上传 http://www.sucaihuo.com/php/1399.html demo http://www.sucaihuo.com/jquery/13/139 ...

  5. Qualcomm Vuforia SDK背景

    参考视频:http://edu.csdn.net/course/detail/1467/23125?auto_start=1 一:概述 官网:www.vuforia.com 应用方向:产品交互.虚拟购 ...

  6. 用Python获取Linux资源信息的三种方法

    方法一:psutil模块 #!usr/bin/env python # -*- coding: utf-8 -*- import socket import psutil class NodeReso ...

  7. 85、android handler的警告Handler Class Should be Static or Leaks Occur

    转载:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1106/1922.html 在使用Handler更新UI的时候,我是这样写 ...

  8. forEach循环dom

    大家都知道forEach是循环数组用的,而且很方便,可以丢掉for循环了,但是它不能循环Dom元素.其实我们可以利用call来完成forEach循环Dom; html结构: <ul class= ...

  9. skeleton

    响应式模版 伯乐在线:http://hao.jobbole.com/skeleton/ cdn  : https://cdn.bootcss.com/skeleton/2.0.4/skeleton.c ...

  10. Django学习笔记第三篇--关于响应返回

    一.返回简单类型: #1.返回简单字符串 #from django.http import HttpResponse return HttpResponse("return string&q ...