spring boot 常用笔记

spring boot 注解

核心注解

@SpringBootApplication

这是 Spring Boot 项目的入口注解,包含了以下三个注解的组合:@Configuration@EnableAutoConfiguration@ComponentScan

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
  • @Configuration:标记类是一个配置类。

    用于标记一个类为 Spring 配置类,该类可以替代传统的 XML 配置文件。

@Configuration
public class AppConfig {
    // Bean definitions
}
  • @EnableAutoConfiguration:启用 Spring Boot 的自动配置机制。

    用于自动配置 Spring 应用程序上下文,尝试根据已添加的 jar 依赖自动配置你的 Spring 应用。

    @EnableAutoConfiguration
    public class AppConfig {
        // Configuration details
    }
    
  • @ComponentScan:启用组件扫描。

    用于自动扫描并注册带有 @Component@Service@Repository@Controller 注解的类。

@ComponentScan(basePackages = "com.example")
public class AppConfig {
    // Configuration details
}

组件扫描

@Repository

  • 作用: 标识持久层组件,实际上是@Component的一个特化,用于表示数据访问组件。
  • 数据访问组件(Data Access Component)通常是指在软件系统中负责数据访问和持久化的部分或模块。在典型的企业应用程序中,数据访问组件通常涉及与数据库交互、执行数据操作(如增删改查)、数据转换和持久化等任务。
@Repository
public class MyRepository {
}

@Service

  • 作用: 标识服务层组件,实际上是@Component的一个特化,用于表示业务逻辑服务。

  • 细节: 用于标识服务层的类,这些类通常包含业务逻辑。

    @Service
    public class MyService {
    }
    

@Controller

  • 作用: 标识控制层组件,实际上是@Component的一个特化,用于表示Web控制器。
  • @RestController@Controller@ResponseBody 的组合,通常用于创建 RESTful Web 服务。
  • 细节: 用于标识Spring MVC控制器,处理Web请求并返回视图。
@Controller
public class MyController {
}

@Component

  • 作用: 将一个类标识为Spring组件(Bean),可以被Spring容器自动检测和注册。
  • 细节: @Component是一个通用的注解,可以用来标注任何Spring管理的Bean。
@Component
public class MyComponent {
}

依赖注入

@Autowired

@Autowired 是最常用的依赖注入注解。它可以应用于构造器、方法或字段上。

@Service
public class MyService {
    @Autowired
    private MyRepository myRepository;
    
    // Other service methods
}

@Qualifier

@Qualifier 用于在有多个候选 bean 时进行精确注入。

@Service
public class MyService {
    @Autowired
    @Qualifier("specificRepository")
    private MyRepository myRepository;
    
    // Other service methods
}

@Resource

@Resource 是 JSR-250 的注解,既可以通过名称也可以通过类型注入。

import javax.annotation.Resource;

@Service
public class MyService {
    @Resource(name = "specificRepository")
    private MyRepository myRepository;
    
    // Other service methods
}

@ConfigurationProperties

@ConfigurationProperties 用于将配置文件中的属性绑定到 Java 类。与@Component配合使用

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "app")
public class AppProperties {
    private String name;
    private String description;

    // Getters and setters
}

@Bean

@Bean 用于在配置类中声明一个 Spring 管理的 Bean。

@Configuration
public class MyConfig {
    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值