SpringBoot简单入门
Spring是一个JavaWeb开发框架,极大的简化开发,降低了对配置文件的要求;能迅速的开发web应用,几行代码就可以开发一个http接口。
1. 创建简单项目
- 点击菜单->New->Project->Spring Initalizr 然后点击Next
 

- 输入如图所示两个地方参数,其他参数一般默认,然后Next
 

- 接着选择Web,然后勾选Spring Web即可,Next
 

- 最后确认一下项目名称和位置即可,点击Finish完成项目创建。
 - 项目创建好后,自带一个Application,在里面填写如下内容
 

- 启动Application项目,测试访问。
 
2. 关于打包问题
通常部署SpringBoot项目可以采用两种方式:全部打包成一个jar包,或者打包成一个war包。
2.1 打包成jar包
使用IDEA的话非常简单,找到右侧侧边栏的maven图标,点击项目生命周期,然后双击install即可,没问题应该显示BUILD SUCCESS。

使用maven的
mvn install一样可以,该命令需在项目根目录打开命令行窗口下运行。
该命令会在你项目的target目录下生产一个jar文件,使用命令java -jar yourjarName.jar运行该jar文件即可启动项目。

这个jar包里面包含项目的全部文件,以及Tomcat服务器,所以无论放到哪里只要有java环境就可以运行启动项目。
2.2 打包成war包
- 修改
pom.xml,添加打包类型和依赖 
<!-- 打包成war包需加这一行-->
<packaging>war</packaging>
<!-- 打包从war包时需添加此依赖,防止打包冲突-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope> <!-- 表示只在编译和测试过程有效,生成war包不会加入-->
</dependency>
- 修改启动类文件,继承
SpringBootServletInitializer 
@SpringBootApplication
public class HelloDemoApplication extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(HelloDemoApplication.class);
    }
    public static void main(String[] args) {
        SpringApplication.run(HelloDemoApplication.class, args);
    }
}
SpringBoot项目想运行在第三方Tomcat上必须实现
SpringBootServletInitializer接口的configure方法才能让外部容器运行。
- 使用maven的
clean命令,然后使用package命令,就会在target目录下生成.war文件 

- 将该文件复制到外部Tomcat的webapps目录下,重命名为
ROOT.war,方便访问。 
不修改为ROOT,需要加项目名称才可以访问。

- bin目录下点击
startup.bat文件,启动项目,测试访问。 

3. 关于Tomcat中文乱码问题
在tomcat的conf文件夹下,打开logging.properties文件,将java.util.logging.ConsoleHandler.encoding = UTF-8修改java.util.logging.ConsoleHandler.encoding = GBK

4. SpringBoot热部署
- 在settings中开启
Build project automatically,自动构建项目功能。 

- 开启动态自动编译,同时按住
Ctrl+Shift+Alt+/,然后点击Registry,勾选如下参数,并配置时间。 

- 开启项目的热部署策略,在项目配置中选择如下选项即可。
 

- 项目添加热部署插件,在xml中配置如下。
 
<!-- 热部署依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional> <!-- true才生效 -->
    <scope>runtime</scope> <!--仅在运行期有效,不参与打包-->
</dependency>
- 保险起见,浏览器f12 ✅Disable cache。
 
5. 关于错误处理
定义一个全局的异常处理器,然后跳转到错误页面
@ControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(value = Exception.class)
    public ModelAndView defaultErrorHandler(HttpServletRequest req,Exception e) throws Exception{
        ModelAndView view = new ModelAndView();
        view.addObject("exception",e);
        view.addObject("url",req.getRequestURL());
        view.setViewName("errorPage");
        return view;
    }
}