springboot注释
注解 | 适用场景 |
---|
@Component | 通用组件(基础注解,无额外功能) |
@Repository | 数据访问层(DAO)(继承 @Component,处理数据库异常) |
@Service | 业务逻辑层(继承 @Component,语义化标记) |
@Controller | MVC 控制器层继承 (继承 @Component,处理 Web 请求) |
@Override | 标识方法重写父类或接口方法,增强代码可读性,编译时检查方法签名一致性 |
@Autowired | Spring核心注解,按类型自动注入Bean,支持字段、构造器、Setter和方法注入 |
@Configuration | 标记类为配置类,替代XML配置,结合@Bean定义Bean。 |
@Bean | 在配置类中显式声明Bean,替代XML的标签 |
@Validated | 启用Spring验证功能,支持分组验证和方法级验证。 |
@ConfigurationProperties | 将配置文件属性映射到Java对象,支持类型安全、嵌套属性和多环境配置。 |
@RequiredArgsConstructor | Lombok注解,自动生成包含final或非空字段的构造方法。 |
@Repository | 标记数据访问层组件,提供事务支持和异常转换。 |
@Mapper | MyBatis注解,标识接口并与SQL映射文件关联。 |
new HashMap<>() | 基于哈希表,随机访问快(O(1),需快速查找子节点 |
new TreeMap<>() | 基于红黑树,按键排序(O(log n),需有序遍历键时 |
new LinkedHashMap<>() | 保留插入顺序,查找速度略低于 HashMap,需保持插入顺序时 |
一,@Component
- 被 @Component 标记的类会被 Spring 的组件扫描机制自动发现,并注册为 IoC 容器中的 Bean。
- 通过 @Component(“customName”) 显式指定 Bean 名称。
import org.springframework.stereotype.Component;@Component
public class MyComponent {public void doSomething() {System.out.println("执行操作...");}
}
二,@Repository
- @Repository是Spring专门为数据访问层(DAO)设计的注解,继承自@Component。
- 被标记的类会被Spring组件扫描自动发现并注册为Bean,无需手动配置。
import org.springframework.stereotype.Repository;
import javax.persistence.EntityManager;@Repository
public class UserDao {@PersistenceContextprivate EntityManager entityManager;public User findById(Long id) {return entityManager.find(User.class, id); }
}
三,@Service
- 明确标记类属于业务逻辑层,负责处理核心业务规则(如订单处理、用户管理)
- 被 @Service 标记的类会被 Spring 组件扫描机制自动发现,并注册到 IoC 容器中。
import org.springframework.stereotype.Service;@Service
public class UserService {public User getUserById(Long id) {return new User(id, "John Doe")