• springboot学习入门简易版三---springboot2.0启动方式


    2.4使用@componentscan方式启动

    2.4.1 @EnableAutoConfiguration 默认只扫描当前类

    @EnableAutoConfiguration 默认只扫描当前类,如果再新建一个indexcontroller类,将无法被扫描。

    新建indexcontroller类:

    /**

     * 测试index类

     * @author admin

     *

     */

    @RestController

    public class IndexController {

    @RequestMapping("/index")

    public String index() {

    return "index info";

    }

    }

    启动TestController类中的main函数,首先访问http://localhost:8080/test

    没有问题,再访问http://localhost:8080/index

    报错信息如下:

    Whitelabel Error Page

    This application has no explicit mapping for /error, so you are seeing this as a fallback.

    Sun Apr 14 22:25:20 CST 2019

    There was an unexpected error (type=Not Found, status=404).

    No message available

    2.4.2 @ComponentScan指定扫描范围(7

    为了方便维护和规范化,将启动类和controller类分离开,新建一个IndexController类。启动类修改如下:

    //@RestController
    //@SpringBootApplication //或使用@EnableAutoConfiguration配置
    @EnableAutoConfiguration //自动配置,根据pom文件引入的依赖信息,自动配置对应的组件;扫包范围,默认在当前类中
    @ComponentScan("com.springboot2demo") //指定扫描范围
    public class FirstApplication {
    
        /**
         * 程序入口
         *  SpringApplication.run 相当于java代码创建内置tomcat,加载springmvc注解启动
         * @param args
         */
        public static void main(String[] args) {
            SpringApplication.run(FirstApplication.class, args);
        }
    
    }

    IndexController为:

    /**
     * 仅 @EnableAutoConfiguration注解方式下启动(默认只扫描当前类),/index 访问报错
     * @author admin
     */
    @RestController
    public class IndexController {
    
        @RequestMapping("/index")
        public String index() {
            return "index info";
        }
        
        @RequestMapping("/test")
        public String test(){
            return "springboot2.0 first application";
        }
    
    }

    启动springboot启动类

     访问http://localhost:8080/index 成功返回:index info 

    访问http://localhost:8080/test成功返回:springboot2.0 first application

    2.4.3 @SpringBootApplication方式启动(8

    1多个controller包的@componentscan多包扫描

    FirstController类:

    @RestController
    public class FirstController {
    
        @RequestMapping("/firstIndex")
        public String index() {
            return "firstIndex info";
        }
        
    }

    SecondController类:

    @RestController
    public class SecondController {
    
        @RequestMapping("/secondIndex")
        public String index() {
            return "secondIndex info";
        }
        
    }

    启动类修改为:

    //@RestController
    //@SpringBootApplication //或使用@EnableAutoConfiguration配置
    @EnableAutoConfiguration //自动配置,根据pom文件引入的依赖信息,自动配置对应的组件;扫包范围,默认在当前类中
    //@ComponentScan("com.springboot2demo") //指定扫描范围
    @ComponentScan(basePackages= {"com.springboot2demo.first","com.springboot2demo.second"}) //多包扫描
    public class FirstApplication {

    2 @SpringbootApplication注解启动

    等同于@EnableAutoConfiguation+@ComponentScan

    且扫描范围默认为类所在当前包下所有包(包括子包)

    在原有代码基础上修改启动类

    //@RestController
    //@EnableAutoConfiguration //自动配置,根据pom文件引入的依赖信息,自动配置对应的组件;扫包范围,默认在当前类中
    //@ComponentScan("com.springboot2demo") //指定扫描范围
    //@ComponentScan(basePackages= {"com.springboot2demo.first","com.springboot2demo.second"}) //多包扫描
    @SpringBootApplication //或使用@EnableAutoConfiguration+@ComponentScan配置
    public class FirstApplication {

    git代码:https://github.com/cslj2013/-springboot2.0_first_demo.git

  • 相关阅读:
    MySQL主从复制集群添加slave节点
    GTID主从 与 传统主从复制
    20201207总结
    202011051 每周例行报告
    202011121 每周例行报告
    202010081 每周例行报告
    202011261 每周例行报告
    202010153 每周例行报告
    202010291 每周例行报告
    202011201 每周例行报告
  • 原文地址:https://www.cnblogs.com/cslj2013/p/10851933.html
Copyright © 2020-2023  润新知