• 关于如何在其他包中写controller和简单介绍@SpringBootApplication


    本文参考博客:https://blog.csdn.net/u013473691/article/details/52353923

    关于@Configuration和@Bean参考博客:https://www.cnblogs.com/soundcode/p/6478004.html

    刚开始使用springboot,发现在application启动类所在的包其他的包中写controller没有用,拦截不了url。这是因为springboot默认扫描的的类是在启动类当前的包和下级包,默认端口是8080.我们用springmvc也知道,要用@Controller要有两步:

    1.在spring的配置文件中声明Spring-context,如下:

      

    <beans
        ...
        xmlns:context:="http:www.springframework.org/schema/context"
        ...    
    >

      2.然后还需要饮用<component-scan/>元素

      <context:component-scan base-package="basePackage"/>

      请在<component-scan/>元素中指定控制器类的基本包。请确保所有控制器类都在基本包下,并且不要指定一个太广泛的基本包,因为这样会使得SpringMVC扫描了太多无关的包。

      所以我们也要告诉springboot要扫什么包,然后下面就介绍这个@SpringBootApplication注解:

    @SpringBootApplication=@Configuration+@EnableAutoConfiguration+@ComponentScan

    分别简单介绍下这几个注解:

    1.@Configuration:

      这个注解加上@Bean注解就可以创建一个简单的spring配置类,可以用来替代相应的配置文件。

    @Configuration  
    public class Conf {  
        @Bean  
        public Car car() {  
            Car car = new Car();  
            car.setWheel(wheel());  
            return car;  
        }  
        @Bean   
        public Wheel wheel() {  
            return new Wheel();  
        }  
    }  

      相当于:

    <beans>  
        <bean id = "car" class="com.test.Car">  
            <property name="wheel" ref = "wheel"></property>  
        </bean>  
        <bean id = "wheel" class="com.test.Wheel"></bean>  
    </beans>  

    @Configuration的注解类标识这个类可以使用Spring IoC容器作为bean定义的来源。@Bean注解告诉Spring,一个带有@Bean的注解方法将返回一个对象,该对象应该被注册为在Spring应用程序上下文中的bean。

    生成对象的名字默认用@Bean注解的方法名,当然也可以用@Bean注解的name属性来设置

    关于@Configuration和@Bean参考博客:https://www.cnblogs.com/soundcode/p/6478004.html

    2.@EnableAutoConfiguration:

    能够自动配置spring的上下文,试图猜测和配置你想要的bean类,通常会自动根据你的类路径和你的bean定义自动配置。

    这个注释会告诉springboot开始添加beans,根据你的classpath设定,你的其他beans还有一些全局变量。

    比如说一般构造一个springmvc应用,你会添加一个@EnableWebMvc,但springboot会自动添加他,当他看到classpath有这个Spring-Webmvc,这指明这个应用是个web应用并且会激活关键的东西像分发器servlet——DispatcherServlet。

    3.@ComponentScan:

    会自动扫描指定包下的全部标有@Component的类,并注册成bean,当然包括@Component下的子注解@Service,@Repository,@Controller。

  • 相关阅读:
    分布式训练基本原理
    服务化部署框架Paddle Serving
    Paddle Inference原生推理库
    源码编译优化
    推理部署概述
    深度学习模型组网
    在这里
    什么是响应式编程,为什么使用它?
    时间管理:如何充分利用你的24小时-吉姆·兰德尔.pdf
    Win10激活工具
  • 原文地址:https://www.cnblogs.com/wangshen31/p/8729532.html
Copyright © 2020-2023  润新知