• SpringBoot


    一、SpringBoot部署

      1、新建一个Webapp项目,在pom.xml中导入SpringBoot依赖

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
      </parent>

    二、简单Hello案例

      1、在java中创建包com.boot,在此包中建立启动类StartSpringBoot

        

      2、在com.boot包中创建Controller包并添加创建Controller类

    package com.boot.controller;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    /**
     * 如果说在Controller类上加RestController注解代表该controller当中的所有方法都返回Json串
     */
    @RequestMapping("/first")
    public class FirstController {
    
        @RequestMapping("/firstRequest")
        public String firstRequest(){
            int result=5/0;
            System.out.println("第一个请求到达Controller");
            return "Hello SpringBoot";
        }
    }

      3、(1)启动StartSpringBoot类中的main方法,SpringBoot自带Tomcat

        

        (2)控制台效果如下

         

        (3)页面直接访问Controller类方法即可,页面实现效果如下

        

    三、SpringBoot静态资源访问

      1、在resources文件下创建static包,再static下创建img包和html包

        

       2、在页面中直接访问地址即可

        (1)img访问地址如下

        

        (2)html访问地址如下

        

         

    四、SpringBoot解决异常问题

      1、在Controller类中定义一个异常

        

       2、在com.boot包下创建一个一个异常包exception

        创建异常类ExceptionHandler(运行时异常,在运行时发生报错则进入该类)

    package com.boot.excetption;
    
    import org.springframework.web.bind.annotation.ControllerAdvice;
    import org.springframework.web.bind.annotation.ExceptionHandler;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import java.util.HashMap;
    import java.util.Map;
    
    @ControllerAdvice
    public class MyExceptionHandler {
        //捕获运行时异常
        @ExceptionHandler(RuntimeException.class)
        @ResponseBody
        public Map<String,Object> exceHandler(){
            Map<String,Object> map=new HashMap<>();
            map.put("error","500");
            map.put("msg","您好,服务器暂时出现异常,请稍后重试");
            return map;
        }
    }

      3、结果如下

        

    五、SpringBoot使用freemarker

      1、导入依赖freemarker

    <dependency>
          <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-freemarker</artifactId>
     </dependency>

      2、配置application.propertiesleuk文件

    ## Freemarker 配置
    spring.freemarker.template-loader-path=classpath:/templates/
    spring.freemarker.cache=false
    spring.freemarker.charset=UTF-8
    spring.freemarker.check-template-location=true
    spring.freemarker.content-type=text/html
    spring.freemarker.expose-request-attributes=false
    spring.freemarker.expose-session-attributes=false
    spring.freemarker.request-context-attribute=request
    spring.freemarker.prefix=/
    spring.freemarker.suffix=.ftl

      3、在resources包下创建templates包并创建holle.ftl模板

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>SpringBoot整合FreeMarker</title>
    </head>
    <body>
    欢迎:<#--${name}-->
    <#list stuList as stu>
        ${stu.stu_name}
    </#list>
    
    <#if 1==1>
        呵呵,相等
    </#if>
    </body>
    </html>

      4、创建StartSpringBoot启动类

    package com.freemarker;
    
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class StartSpringBoot {
        public static void main(String[] args){
            SpringApplication.run(StartSpringBoot.class,args);
        }
    }

      5、创建Controller类freemarkerController类

    package com.boot.controller;
    
    import com.boot.entity.Student;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.ModelMap;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import java.util.ArrayList;
    import java.util.List;
    
    @Controller
    @RequestMapping("/free")
    public class FreeController {
    
        @RequestMapping("/freeFirst")
        public String freeFirst(ModelMap map){
            map.put("name","没穿裤子");
            return "helloFreeMarker";       //找templates/name.ftl
        }
    
        @RequestMapping("/freeSecond")
        public String freeSecond(ModelMap map){
            List<String> list=new ArrayList<>();
            list.add("张三");
            list.add("李四");
            list.add("王五");
            map.put("userList",list);
            return "helloFreeMarker";
        }
    
    
        @RequestMapping("/freeThread")
        public String freeThread(ModelMap map){
            List<Student> list=new ArrayList<>();
            Student stu=new Student();
            stu.setStu_id(1);
            stu.setStu_name("张三");
            list.add(stu);
            map.put("stuList",list);
            return "helloFreeMarker";
        }
    
    
    
    
    }

      6、页面访问实现效果如下

        

  • 相关阅读:
    es6学习之async和await关键字
    杂七杂八 2022年我今后的学习方向
    常见问题总结 某糠vms密码恢复
    软件开发 小程序分类
    Linux 命令 nproc
    java类初始化、实例初始化、方法重写、重载
    java方法的参数传递机制
    java的序列化与反序列化原理
    ThreadPoolExecutor线程池
    固定数据条的最大值
  • 原文地址:https://www.cnblogs.com/F017/p/12018158.html
Copyright © 2020-2023  润新知