zoukankan      html  css  js  c++  java
  • 关于如何在其他包中写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。

  • 相关阅读:
    好好学习天天向上之InfoPath学习系列(一):Form Services与InfoPath初识
    Windows Server 2008 R2 AD RMS管理(转)
    好好学习天天向上之InfoPath学习系列(零):写在最前面
    如何向妻子解释OOD(转)
    WCF下传递EF实体对象中出现异常:无法将 EntityReference 对象序列化
    生产信息集成分析平台(MIIAS V1.0) 概述
    Hadoop:分布式计算平台初探
    Junit单元测试配置及基本用法
    centos7安装maven
    docker安装redis
  • 原文地址:https://www.cnblogs.com/wangshen31/p/8729532.html
Copyright © 2011-2022 走看看