spring boot(一)

1.创建项目

使用IntelliJ IDEA

file -> New -> Project-> Spring Initializr -> 选择默认的 url -> Next

可以修改一下项目的信息 -> Next

选上web

输入项目名,选好位置->Finish

默认创建好的目录结构

说明:

  DemoApplication: 一个带有 main() 方法的类,用于启动应用程序

  DemoApplicationTests:一个空的 Junit 测试了,它加载了一个使用 Spring Boot 字典配置功能的 Spring 应用程序上下文

  application.properties:一个空的 properties 文件,可以根据需要添加配置属性

  pom.xml: Maven 构建说明文件

 2.完成Hello

  在com.example.demo新建java class  Name为 HelloController

package com.example.demo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String hello() {
        return "Hello Spring Boot!";
    }
}

3.启动Spring Boot

 Run-Edit Configurations

回到 SpringbootApplication 这个类中,然后右键点击运行

如果出现

The Tomcat connector configured to listen on port 8080 failed to start

  查看  netstat -aon|findstr "8080"

  查看是哪个进程或者程序占用了端口  tasklist|findstr "11076"

  apache占用了

  关闭

重新运行

打开浏览器

4.说明

  (1)Spring Boot 项目通常有一个名为 *Application 的入口类,入口类里有一个 main 方法, 这个 main 方法其实就是一个标准的 Javay 应用的入口方法。

  (2)入口类文件中的  @SpringBootApplication  是 Spring Boot 的核心注解,它是一个组合注解,该注解组合了: @Configuration、@EnableAutoConfiguration、@ComponentScan

  (3)Spring Boot 使用一个全局的配置文件 application.properties 放置在src/main/resources目录

server.port=8089
server.servlet.context-path=/test

重新启动

浏览器输入http://localhost:8089/test/hello

 说明:@Value 来获取配置属性

application.properties

server.port=8089
server.servlet.context-path=/test
name=baby
age=18
content=name:${name},age:${age}
package com.example.demo;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    @Value("${name}")
    private String name;
    @Value("${age}")
    private Integer age;
    @Value("${content}")
    private String content;
    @RequestMapping("/hello")
    public String hello() {
        //return "Hello Spring Boot!";
        return name+" said:  "+content;
    }
}

 

5.Spring Boot 热部署

 pom.xml 添加一个依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
            <scope>true</scope>
</dependency>

修改plugs

<plugin>
                        
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-maven-plugin</artifactId>
      <configuration>
             <fork>true</fork>
      </configuration>
</plugin>

设置idea

 ctrl+alt+s

 Ctrl+Shift+Alt+ /

 重新编译

修改任意代码,控制台就会自动重启

6.支持Jsp

  视图支持是 Thymeleaf 模板引擎

  (1)修改 pom.xml,增加对jsp的支持

       <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>

  (2)配置试图重定向 JSP 文件的位置

    修改application.properties

spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

  (3)新建class文件JspController

package com.example.demo;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import java.text.DateFormat;
import java.util.Date;

/**
 * Created by Auser on 2018/6/12.
 */
@Controller
public class JspController {
    @RequestMapping("/jsptpl")
    public String jsptpl(Model m){
        System.out.println("jsp");
        m.addAttribute("now", DateFormat.getDateTimeInstance().format(new Date()));
        return "jsptpl";
    }
}

  (4)新建jsptpl.jsp 文件

  在src/main目录下依次创建 webapp/WEB-INF/views 下创建一个 jsptpl.jsp 文件

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    Hi,this is Jsp tpl.现在的时间是  ${now}
</body>
</html>

  注:

    右键 -> 新建时没有发现jsp文件,此时

    file -> project structure 

  

对应的目录

   配置完成后,就可以创建jsp文件了

 

   此时直接起动,会出现404错误,使用 spring-boot:run 运行项目可以解决

 

补充:

  (1)依赖范围

  就是用来控制依赖和三种classpath(编译classpath,测试classpath、运行classpath)的关系,Maven有如下几种依赖范围:

  • compile:编译依赖范围。如果没有指定,就会默认使用该依赖范围。使用此依赖范围的Maven依赖,对于编译、测试、运行三种classpath都有效。典型的例子是spring-code,在编译、测试和运行的时候都需要使用该依赖。
  • test: 测试依赖范围。使用次依赖范围的Maven依赖,只对于测试classpath有效,在编译主代码或者运行项目的使用时将无法使用此依赖。典型的例子是Jnuit,它只有在编译测试代码及运行测试的时候才需要。
  • provided:已提供依赖范围。使用此依赖范围的Maven依赖,对于编译和测试classpath有效,但在运行时候无效。典型的例子是servlet-api,编译和测试项目的时候需要该依赖,但在运行项目的时候,由于容器以及提供,就不需要Maven重复地引入一遍。

   (2)全局的配置文件

    可以是 application.properties 或 application.yml

    这个文件会被发布在classpath中,并且被SpringBoot自动读取

    推荐使用application.yml,因为它提供了结构化及其嵌套的格式(可以将原来的application.properties重命名为application.yml,修改文件内容)

    刚开始失败了,所以例子中用的application.properties

    yml格式对缩进有严格的要求  详见

    application.yml

server:
    port: 8089
    servlet:
      context-path: /test
name:
    baby
age:
    18
content:
    name:${name},age:${age}

    application.properties

server.port=8089
server.servlet.context-path=/test
name=baby
age=18
content=name:${name},age:${age}

 

posted @ 2018-06-08 13:22  慕尘  阅读(187)  评论(0编辑  收藏  举报