spring boot 入门学习

SpringBoot学习笔记

一、Spring Boot简介

Spring由于其繁琐的配置,一度被人成为“配置地狱”,各种XML、Annotation配置,让人眼花缭乱,而且如果出错了也很难找出原因。Spring Boot项目就是为了解决配置繁琐的问题,最大化的实现convention over configuration(约定大于配置)。

spring boot 下个项目会用,作为app的服务端框架,spring boot 我理解就是把spring spring mvc ,spring data jpa 等等的一些常用的常用的基础框架组合起来,提供默认的配置,然后提供可插拔的设计,就是各种starter,来方便开发者使用这一系列的技术,套用官方的一句话,spring 家族发展到今天,已经很庞大了,作为一个开发者,如果想要使用spring 家族一系列的技术,需要一个一个的搞配置,然后还有个版本兼容性问题,其实挺麻烦的,偶尔也会有小坑出现,其实蛮影响开发进度,spring boot 就是来解决这个问题,提供了一个解决方案吧,可以先不关心如何配置,可以快速的启动开发,进行业务逻辑编写,各种需要的技术,加入starter就配置好了,直接使用,可以说追求开箱即用的效果吧。(该段使用百度知道内容https://zhidao.baidu.com/question/1178709067174287499.html?qbl=relate_question_0&word=springboot%D3%EBspringcould%B5%C4%B9%D8%CF%B5&skiptype=2)

二、Spring Boot几点特性

SpringBoot的特性有以下几条: 

 创建独立Spring应用程序 

 嵌入式Tomcat,Jetty容器,无需部署WAR包

 简化Maven及Gradle配置

 尽可能的自动化配置Spring 

 直接植入产品环境下的实用功能

三、Spring Boot对各模块的整合

spring对很多模块进行了整合,其中包括spring 家族中的框架的整合和其他框架的整合等,就是让开发者在运用到其他技术的时候省去很多配置性的工作以及版本的兼容问题。可以说是一套很完整的应用框架。

 

下面是一些常用的整合:

详细内容见:

https://git.oschina.net/didispace/SpringBoot-Learning/blob/master/README.md?dir=0&filepath=README.md&oid=58e913dd25fab16ee384c0df0b4671087e86cebe&sha=5e9c95a3b99e88267ce249837abaf56d040eb844

这哥们写得很不错

四、Spring Boot的使用

4.1  Spring Boot创建简单的项目

1.在eclipse中创建一个maven项目(这里我们创建一个web应用)

       目录结构为:

2.在pom.xml 文件中引入parent依赖包(下文中提到的依赖引入都是在pom.xml中引入的)

注:在进入parent 依赖的jar包以后,在后面dependencies中的dependency中引入的依赖就不需要写版本号

 

3.引入maven插件以及SpringBoot集成的热加载依赖

4.引入junit依赖

5.由于我们创建的是一个web应用,所以我们要引入web依赖

6.创建Controller

packagecn.seedyee.spring_study1.spring_study2;

 

importorg.springframework.stereotype.Controller;

importorg.springframework.web.bind.annotation.RequestMapping;

importorg.springframework.web.bind.annotation.RequestMethod;

 

/**

 * 用来测试Security的controller1

 * @author zyeeda

 *

 */

 

@Controller

publicclass SecurityController {

      

       @RequestMapping("/")

       public String index() {

              return "index";

       }

      

       @RequestMapping("work")

       public String work() {

              System.out.println("coming inthe work...");

              return "work";

       }

      

       @RequestMapping(value ="/login", method=RequestMethod.GET)

       public String login() {

             

              return "login";

       }

      

       @RequestMapping(value="/hello",method=RequestMethod.GET)

       public String hello(){

              return "hello";

       }

}

7.注意:上一个步骤中我们使用的是@Controller注解,在对应的http请求中我们返回的是字符串是想对应的前端页面文件的文件名(Spring Boot中建议不适用jsp文件),因此我们这里我们需要对Spring Boot资源文件进行了解以及完成一下两个步骤:

****SpringBoot 资源文件:

Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:

 

/static

/public

/resources

/META-INF/resources

 

我们需要使用模板引擎来完成改设置工作,Spring Boot整合的模板引擎有:

Thymeleaf

FreeMarker

Velocity

Groovy

Mustache

在这里使用Thymeleaf 作为例子,它们默认的模板配置路径为:src/main/resources/templates。当然也可以修改这个路径。对于模板的配置可以参考: http://blog.didispace.com/springbootweb/

 

在对Spring Boot的资源文件有了解以后我们将完成以下两个工作:

   (1)引入要使用的模板依赖Thymeleaf

      

       (2)在resource目录项创建想对应的前端文件并完成页面的内容(自由完成)

      

这样就完成了一个简单的web项目的搭建

8.编译和运行项目

*******在控制台运行以下命令(在当前项目路径下)

              mvn compile

              mvn spring-boot:run

*******查看效果

              在浏览器中输入:localhost:8080/(你前端文件的资源路径)变可以完成访问(省略显示效果)

 

4.2  Spring Boot 的配置

参考:

http://wenku.baidu.com/link?url=LZHHTLaGetaNNoeD1sBRXmckCVfMSmUmQVS29aDdCQKp0gQcMS8w97utOyagGXN5RPXjprNBu0Vh3A-YmIa6Ij2jtSpUE5x4Ii_8x_XdYNW

Spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置。 

1. Spring Boot 支持多种外部配置方式

这些方式优先级如下: 

1. 命令行参数 

2. 来自java:comp/env的JNDI属性 

3. Java系统属性(System.getProperties()) 4. 操作系统环境变量 

5. RandomValuePropertySource配置的random.*属性值 

6. jar包外部的application-{profile}.properties或application.yml(带spring.profile)配置文件 

7. jar包内部的application-{profile}.properties或application.yml(带spring.profile)配置文件 

8. jar包外部的application.properties或application.yml(不带spring.profile)配置文件 

9. jar包内部的application.properties或application.yml(不带spring.profile)配置文件 

10. @Configuration注解类上的@PropertySource 

11. 通过SpringApplication.setDefaultProperties指定的默认属性

 

 

你可能感兴趣的:(java)