千家信息网

程序员需要掌握SpringBoot中的哪些注解

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章给大家分享的是有关程序员需要掌握SpringBoot中的哪些注解的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言Spring经历了如下几个阶段:第一阶段:xml配
千家信息网最后更新 2026年11月03日程序员需要掌握SpringBoot中的哪些注解

这篇文章给大家分享的是有关程序员需要掌握SpringBoot中的哪些注解的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

前言

Spring经历了如下几个阶段:

第一阶段:xml配置

在Spring 1.x时代,使用Spring开发满眼都是xml配置的Bean,随着项目的扩大,我们需要把xml配置文件放到不同的配置文件里,那时需要频繁的在开发的类和配置文件之间进行切换

第二阶段:注解配置

在Spring 2.x 时代,随着JDK1.5带来的注解支持,Spring提供了声明Bean的注解(例如@Component、@Service),大大减少了配置量。主要使用的方式是应用的基本配置(如数据库配置)用xml,业务配置用注解

第三阶段:java配置

Spring 3.0 引入了基于 Java 的配置能力,这是一种类型安全的可重构配置方式,可以代替 XML。我们目前刚好处于这个时代,Spring4.x和Spring Boot都推荐使用Java配置。

所有这些xml配置都代表了开发时的损耗。 因为在思考 Spring 特性配置和解决业务问题之间需要进行思维切换,所以写配置挤占了写应用程序逻辑的时间。Spring Boot 让这一切成为了过去。Spring Boot 简化了基于Spring的应用开发,只需要"run"就能创建一个独立的、生产级别的Spring应用。Spring Boot为Spring平台及第三方库提供开箱即用的设置(提供默认设置),这样我们就可以简单的开始。多数Spring Boot应用只需要很少的Spring配置。我们可以使用SpringBoot创建java应用,并使用java -jar 启动它,或者采用传统的war部署方式。这也是SpringBoot让越来越多的开发人员使用的主要原因之一。下面我们就来详细讲解SpringBoot几个很重要的注解:@Configuration , @Bean,@SpringBootApplication,@ComponentScan

@ Configuration和@Bean注解

Spring的Java配置方式是通过 @Configuration和 @Bean 这两个注解实现的,这两个注解是从Spring3.0之后就开始有了:

1、@Configuration 作用于类上,相当于一个xml配置文件;

2、@Bean 作用于方法上,相当于xml配置中的;

案例

@Configuration

public class DemoConfigure {

@Bean

public User userBean(){

User user=new User();

user.setAge(100);

user.setName("jack");

user.setPwd("123");

return user;

}

}

测试如下:

package com.example.springboot01;

import com.example.springboot01.pojo.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class Springboot01ApplicationTests {

@Autowired
private User user;
@Test
public void contextLoads() {
System.out.println(user);
}

}

打印:

User{name='jack', pwd='123', age=100}

@SpringBootApplication

@SpringBootApplication注解源码如下:

package org.springframework.boot.autoconfigure;

@Target(ElementType.TYPE)

@Retention(RetentionPolicy.RUNTIME)

@Documented

@Inherited

@SpringBootConfiguration

@EnableAutoConfiguration

@ComponentScan(excludeFilters = {

@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),

@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })

public @interface SpringBootApplication {

}

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

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

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

- @ComponentScan,扫描当前包及其子包下被@Component,@Controller,@Service,@Repository注解标记的类并纳入到spring容器中进行管理。是以前的(以前使用在xml中使用的标签,用来扫描包)。

@SpringBootApplication指定扫描某些包

@SpringBootApplication注解默认扫描的是当前类所在的包和子包。自己可以通过属性来设置扫描其他的包,设置了之后默认值就不在有用。

@SpringBootApplication(scanBasePackageClasses = {TestConfig.class,TestController.class})
通过设置scanBasePackageClasses属性来制定,只扫描哪些配置类(@Configuration注解的类)。

或者如下设置:

@SpringBootApplication(scanBasePackageClasses = {Springboot01Application.class,TestConfig.class})
指定扫描这些类所在的包和子包。

设置不自动装配

springboot 的自动配置可以帮我们节省很多时间,但是有时候如果我们不想在引入依赖包的情况自动配置,则可以通过相关设置取消

在@SpringBootApplication(exclude = {JpaRepositoriesAutoConfiguration.class, RedisAutoConfiguration.class})注解内部将不需要自动配置的依赖通过exclude参数指定即可,可以指定多个类

所有自动配置的类全都在:org.springframework.boot.autoconfigure包下。只能排出自动配置的类。

@ComponentScan

@ComponentScan注解在Spring的注解中也起到到相当重要的作用,它可以自定义Spring扫描的包,也就是它默认会扫描标注了@Controller、@Service、@Component以及@Repository注解的类,并实例化这些组件到SpringIOC容器中,它有个配置属性:basePackages,也就是指定扫描的包,如果不知道,它会默认扫描配置了该注解的类的包所在的路径(包括子包)。我们看@SpringBootConfiguration注解的源码中有段代码:

@AliasFor(

annotation = ComponentScan.class,

attribute = "basePackages"

)

String[] scanBasePackages() default {};

scanBasePackages属性,指定到了@ComponentScan注解的basePackages属性,所有在SpringBoot中,我们同样可以通过scanBasePackages属性指定包扫描的路径(如不指定,会默认扫描主程序类所在的包路径以及子包下的类):

@SpringBootApplication(scanBasePackages = "com.seagetech.springbootdemo")

感谢各位的阅读!关于"程序员需要掌握SpringBoot中的哪些注解"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

配置 注解 属性 应用 开发 作用 所在 文件 方式 阶段 项目 程序 可以通过 实例 容器 方法 时代 路径 程序员 重要 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技股 互联网是不是新科技 狮子座互联网科技 互联网科技公司电话 艾特科技互联网 北京互联网络科技有限公司 互联网女皇 腾讯科技 科技赋能互联网健康 互联网金融中的现代科技 国大互联网教育科技有限公司工作 互联网科技人工智能实验室 四川慕妮娅互联网科技有限公司 南博望互联网科技有限公司 广东工业互联网大赛深圳学泰科技 张召忠谈中国互联网科技 万物互联网智能科技 广州三三互联网科技有限公司 数字互联网科技有限公司 科技美学互联网 艺术 互联网科技快速发展优美句子 亿人帮互联网科技有限公司 新浪科技互联网 互联网科技咨询 海南科技产业互联网平台 西藏七维空间互联网科技有限公司 小米互联网科技园设置 南博望互联网科技有限公司 广东工业互联网大赛深圳学泰科技 云南互联网科技学费 易租星互联网科技有限公司
0