springboot 开发入门,及问题汇总

jopen 9年前

1 . springboot简单介绍(http://projects.spring.io/spring-boot/)

        现在的web项目几乎都会用到spring框架,而要使用spring难免需要配置大量的xml配置文件,而springboot的出现解   决了这一问题,一个项目甚至不用部署到服务器上直接开跑,真像springboot所说:“just run”。

        springboot的很多默认编码方式都是utf-8,真是福利啊。

    org.spring 2013年新开发的框架springboot , 它让一个单独项目的创建变得更加的简单,让所有依赖spring的程序可以做到“jast run”。springboot提供大量第三方libraries让我们可以非常轻松的开始创建一个spring工程,甚至不需要再去配置一些繁琐的xml配置文件

    愿景:

    1:创建独立的spring应用。

    2:嵌入Tomcat, Jetty Undertow 而且不需要部署他们。

    3:提供的“starters”poms来简化Maven配置

    4:尽可能自动配置spring应用。

    5:提供生产指标,健壮检查和外部化配置

    6:绝对没有代码生成和XML配置要求

2 . 简单实例演示 

    都是根据官方文档一点点做的,目前就学了这么一点。

    springboot 开发入门,及问题汇总  

    一个简单的helloworld     直接开始run  main方法就可以了  控制台我也不知道都干了什么,好像是开始部署了,

    但是没有关联到我的tomcat。

    springboot 开发入门,及问题汇总

    浏览器就能直接访问了。

    springboot 开发入门,及问题汇总

3 . 步骤详解

    *注意事项:

    1.开发第一个springboot程序最好使用maven来搭建,文档全程也是maven构建。

    2.springboot因为是一个最新开发的框架,所以只支持java6以上,java7最好,官方推荐java8。

    3.需要maven3.2以上版本支持。

    4.支持以下servlet容器              springboot 开发入门,及问题汇总   

                        也可以将springboot程序部署到所有支持servlet3.0以上的容器

     #开发第一个springboot应用  HelloWorld

        我这里用的MyEclipse10   java 6  maven 3.2.3   tomcat  7.0.55

        新建web project  并添加maven支持。

       springboot 开发入门,及问题汇总

      next之后后面要选择javaee 6.0的library   记住不要选上,因为里面的slf4j会跟springboot自带的产生冲突。

      #配置pom.xml

        配置pom的时候碰到了很多问题。这里提醒大家一下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">      <modelVersion>4.0.0</modelVersion>      <groupId>springboot</groupId>      <artifactId>springboot</artifactId>      <version>0.0.1-SNAPSHOT</version>      <packaging>war</packaging>      <name>springboot</name>      <description />        <properties>          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>          <!-- 这里一定要配置上java的版本,如果是1.7版本的可不用配置 -->          <java.version>1.6</java.version>          <!-- 配置你的tomcat版本 -->          <tomcat.version>7.0.55</tomcat.version>      </properties>      <build>          <plugins>              <!--如果是通过parent方式继承spring-boot-starter-parent则不用此插件              <plugin>                  <groupId>org.springframework.boot</groupId>                  <artifactId>spring-boot-maven-plugin</artifactId>              </plugin>              -->          </plugins>      </build>      <!-- 父依赖 -->      <parent>          <groupId>org.springframework.boot</groupId>          <artifactId>spring-boot-starter-parent</artifactId>          <version>1.2.2.RELEASE</version>      </parent>      <dependencies>          <dependency>              <!-- 导入jar包 -->              <groupId>org.springframework.boot</groupId>              <artifactId>spring-boot-starter-web</artifactId>          </dependency>      </dependencies>  </project>

1.    springboot 的logback-classes-1.1.2.jar的包下有一个org.slf4j.impl包 这是springboot真正需要的包而MyEclipse自带的javaEE6.0library里也有一个slf4j包但它不是springboot所需要的,会一直报 NoSuchMethod异常getSingleton()。搞了半天才找到,所以一开始暂时不添加javaEE6.0Library。

2.这里教大家一个快速找到class文件真正所处包的方法。

当无法确定某个类属于哪个包是   可以通过Test.class.getProtectionDomain();来查看

例如:发生noSuchMethod异常时,但是确实有该方法,一般就是重复加载了jar包。

3.官方文档的例子都是用java7运行的。不配置<java.version>1.6</java.version>的话可能 会报版本异常的错误。具体是啥忘了  类似mirro.minor什么51.0的   50表示jdk1.6   51是jdk1.7

4.如果也不配置tomcat版本的话springboot默认会使用8.x版本的tomcat。所以要加一个

<tomcat.version>7.0.55</tomcat.version>来指定你所使用的tomcat版本(视你CATALINA_HOME配 置的所定)。

      

 #编写java代码

        

package com.i.springboot.controller;    import org.springframework.boot.SpringApplication;  import org.springframework.boot.autoconfigure.EnableAutoConfiguration;  import org.springframework.web.bind.annotation.RequestMapping;  import org.springframework.web.bind.annotation.RestController;    @RestController  @EnableAutoConfiguration  public class FirstController {            @RequestMapping(value="/")//是springmvc中的注解      String home(){          return "helloworld";      }            public static void main(String[] args) throws Exception {          SpringApplication.run(FirstController.class, args);      }        }

    完成后运行main程序无报错则运行成功。在浏览器输入相应的路径即可获得@RequestMapping返回的数据。