第三章、spring与springboot注解

spring在诞生之初就开始了一统江湖的征程,而这个征程之中,  xml的繁琐配置一直是一个障碍,而JDK1.5之后,java的注解是解决这个问题的一个大杀器, 从2.5开始,spring开始了消灭XML的征程,开始引入大量的注解,springboot不仅继承了spring、springMVC注解,本身也提出了更多的注解;

这些注解更加灵活、简便的注入资源,简化结构、解耦代码; 

而注解本身具有一定的逻辑功能,通过各种不同的注解加载不同的功能模块,尤其是在框架之中,通过初始化注解能够将对象实例化、资源注入、路由映射等功能强势加载;

一般情况下我们只会默认使用这些注解达到某些功能,往往不求甚解,但其实掌握并理解这些注解对于理解整个springboot框架十分重要,不仅可以加深对框架的认识,也会加深对注解的认识, 以及对于如何实现自己的注解也十分有意义


一、入口注解:@SpringBootApplication

在进行springboot框架的时候,执行main方法时总会看到class头上一定顶着这样一个注解,这就像一个标签, springboot在扫描的时候会扫描这个标签,表示入口执行方法:

此注解所在的类需与service、dao层为同一级,springboot才会扫描到所有该层注解  

1、@SpringBootApplication是一个复合注解,包括@ComponentScan,和@SpringBootConfiguration,@EnableAutoConfiguration。

(1)、@ComponentScan:扫描当前包及其子包下被@Controller(控制器),@Service(服务层),@Repository(DAO层)以及@Component(注入普通bean,类似于xml中的bean配置)注解标记的类并纳入到spring容器中进行管理。 是以前的<context:component-scan>(spring使用在xml中使用的标签,用来扫描包配置的平行支持)

(2)、@SpringBootConfiguration:继承自@Configuration,二者功能也一致,标注当前类是配置类,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到srping容器中,并且实例名就是方法名。

(3)、@EnableAutoConfiguration:作用启动自动的配置, @EnableAutoConfiguration注解的意思就是Springboot根据你添加的jar包来配置你项目的默认配置,比如根据spring-boot-starter-web ,来判断你的项目是否需要添加了webmvc和tomcat,
就会自动的帮你配置web项目中所需要的默认配置。

同样,如果maven中添加了mybatis或jpa数据源连接包,会默认通过配置文件加载数据源,如果没有配置数据源则会报出异常

package com.beans;
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        ConfigurableApplicationContext context =SpringApplication.run(Application.class,args);
        Cat cat = context.getBean(Cat.class);
        System.out.println(cat);
    }
}
package com.test;
public class Cat {
}

(1)、我们在com.test中建立一个test类(与启动类不在同一级),在扫描的时候,
                发现返回一个null,正是因为  @ComponentScan只会扫描该注解类以以及以下包中的类,如果要包含某个扫描包,
                可以添加:(scanBasePackages = "com.test")指定扫描路径;当然,这样说明了@SpringbootApplication为什么要放在包的同一级

(2)、@SpringBootConfiguration注解其实和@Configuration功能一致,前者继承后者,和@Bean注解结合使用,其主要功能等同于spring配置文件.xml中的<beans><bean></bean></beans>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值