学习框架时一开始用的eclipse,感觉很不舒服,很多配置文件提示很水。
后来遇到了IDEA,神器,不解释谁用谁知道
博主的开发环境,IDEA2016,JDK1.8,Maven3.3.9…
开始SpringBoot之旅吧
一、新建一个SpringBoot项目
环境搭建在此不多解释IDEA2016,JDK1.8,Maven3.3.9
作为一名程序员,搭环境都是基本功(当然遇到什么环境问题也可以请教本人,一定知无不言)
【1】新建操作如下图
【2】填写组织名称以及项目坐标(其实就是maven的东西)
【3】选择依赖(也可以后期配置,方便点选上最好)
【4】创建成功
【5】项目结构如下图:
新建完项目,作为一名萌萌哒程序猿不搞点事情??
二、SpringBoot一些简单的配置
配置文件application.yml:
server:
#配置服务器启动端口
port: 8083
#配置访问的上下文路径,就是localhost:8083后面需要的上下文路径
#已废弃 context-path: /helloworld
servlet:
context-path: /helloworld
有关 context-path 配置,server.context-path 已经被废弃,修改为 server.servlet.context-path ,感谢 @wei5 指出
新建一个Controller(就是一个class,加个注解就升级了),叫做HelloController
package xatu.zsl.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Created by zsl on 2017/9/2.
*/
@RestController
public class HelloController {
@RequestMapping("/springboot")
public String Hello() {
return "Hello SpringBoot!";
}
}
目录结构如下:
搞了几个简单的配置,接下来就是见证奇迹的时刻。
三、启动SpringBoot
项目初始目录下有个类,说他是启动类【StudyBootDemoApplication】,看看他的源码:
package xatu.zsl;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class StudyBootDemoApplication {
public static void main(String[] args) {
SpringApplication.run(StudyBootDemoApplication.class, args);
}
}
有main,,那就能直接运行。,,运行一个试试。
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.6.RELEASE)
成功运行!!,,浏览器测一测,果断成功
完了(●’◡’●),,,真的完了??不再搞点事情?
四、注意细节
【1】,springboot启动时日志是排错的关键地方,凡是实例化成功的Controller都会有一个URL,以及启动的端口号。如下图:
【2】context-path: /helloworld会出现在下图位置,,同时还有一些过滤器,,也都有显示,,dispatcherServlet学习过SpringMVC的读者应该不陌生吧,,核心请求分发处理器。
【3】dispatcherServlet在第一次访问时创建,并初始化,servlet是单例的,,所以创建一次。
servlet详解及Tomcat中多线程下的Servlet
【Tomcat线程池】线程池配置及线程分配测试
【4】有个问题,SpringBoot是如何启动Tomcat的,,我没配置,它咋知道?
看了下源码原来有如下配置,springBoot在,
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
Starter for using Tomcat as the embedded servlet container. De
fault servlet container starter used by spring-boot-starter-web
Stater使用Tomcat作为Servlet容器,默认Servlet容器starter通过spring-boot-starter-web使用。。
解释一下,,就是配置了【spring-boot-starter-web】,会默认带一个Tomcat,作为Servlet容器。
【5】学过SpringMVC的读者都知道,Controller需要配置ResponstBody才能够返回内容,否则会去找ViewResolver进行转view输出,此处是直接输出的,,??why
【@RestController】这个注解是一个组合注解
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package org.springframework.web.bind.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ResponseBody;
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
String value() default "";
}
它包含了这两个注解【@Controller】【@ResponseBody】所以可以直接输出,,方便了许多。
暂时就想到这么多,,日后想到了可以继续更新..........