南阳市建设局网站,淘宝网站建设原理,博客网页制作代码,共享虚拟主机做网站够用么Spring和Spring Boot框架通过丰富的注解集简化了Java开发#xff0c;使得配置更加简洁且易于理解。 下面是一些常用的Spring和Spring Boot注解及其使用方式的简介#xff1a; 目录
1. Component
2. Service
3. Repository
4. Controller
5. RestController
6. Autowire… Spring和Spring Boot框架通过丰富的注解集简化了Java开发使得配置更加简洁且易于理解。 下面是一些常用的Spring和Spring Boot注解及其使用方式的简介 目录
1. Component
2. Service
3. Repository
4. Controller
5. RestController
6. Autowired
7. Value
8. Configuration
9. Bean
10. SpringBootApplication
11. EnableAutoConfiguration
12. ComponentScan
13. Conditional
14. Profile
15. Scope
16. Lazy
17. PostConstruct 和 PreDestroy 1. Component
概述: Component是一个通用的Spring管理的Bean注解。
使用场景: 任何Spring管理的组件都可以使用Component但通常使用其特化注解如Service、Repository、Controller来更明确地表达组件的角色。
Component
public class MyComponent {public void doSomething() {System.out.println(Doing something...);}
}2. Service
概述: Service是Component的特化专门用于标识服务层的组件。
使用场景: 标识业务逻辑层的组件表明该类承担业务服务功能。
Service
public class MyService {public void performService() {System.out.println(Performing service...);}
}3. Repository
概述: Repository是Component的特化通常用于数据访问层。
使用场景: 用于DAO层表明该类负责数据库操作并启用自动异常转换。
Repository
public class MyRepository {public void save() {System.out.println(Saving data...);}
}4. Controller
概述: Controller是Component的特化标识Spring MVC的控制器类。
使用场景: 用于标识控制器类处理HTTP请求并返回视图。
Controller
public class MyController {GetMapping(/hello)ResponseBodypublic String sayHello() {return Hello, World!;}
}5. RestController
概述: RestController是Controller和ResponseBody的组合注解。
使用场景: 用于创建RESTful web服务返回JSON或XML响应。
RestController
public class MyRestController {GetMapping(/greet)public String greet() {return Greetings!;}
}6. Autowired
概述: Autowired用于自动注入依赖。
使用场景: 在需要依赖注入的地方构造函数、字段、方法使用Spring会自动满足依赖需求。
Component
public class MyComponent {private final MyService myService;Autowiredpublic MyComponent(MyService myService) {this.myService myService;}public void execute() {myService.performService();}
}7. Value
概述: Value用于注入属性值。
使用场景: 注入配置文件中的值或系统环境变量。
Component
public class MyComponent {Value(${my.property})private String myProperty;public void printProperty() {System.out.println(Property value: myProperty);}
}8. Configuration
概述: Configuration标识配置类相当于XML配置文件。
使用场景: 定义Bean并进行配置。
Configuration
public class AppConfig {Beanpublic MyService myService() {return new MyService();}
}9. Bean
概述: Bean用于定义一个Bean。
使用场景: 在配置类中使用用于显式声明一个Bean。
Configuration
public class AppConfig {Beanpublic MyService myService() {return new MyService();}
}10. SpringBootApplication
概述: SpringBootApplication是Configuration、EnableAutoConfiguration和ComponentScan的组合注解。
使用场景: 标识Spring Boot主配置类并启动自动配置和组件扫描。
SpringBootApplication
public class MySpringBootApplication {public static void main(String[] args) {SpringApplication.run(MySpringBootApplication.class, args);}
}11. EnableAutoConfiguration
概述: EnableAutoConfiguration让Spring Boot基于类路径中的依赖自动配置Spring应用上下文。
使用场景: 启用自动配置功能大多数情况下不需要单独使用因为SpringBootApplication已经包含它。
Configuration
EnableAutoConfiguration
public class MyAutoConfiguration {
}12. ComponentScan
概述: ComponentScan用于扫描指定包中的组件。
使用场景: 在配置类中使用指定要扫描的包路径。
Configuration
ComponentScan(basePackages com.example)
public class MyComponentScanConfig {
}13. Conditional
概述: Conditional根据条件决定是否实例化一个Bean。
使用场景: 在配置类中使用配合条件类实现按条件装配。
Configuration
public class ConditionalConfig {BeanConditional(MyCondition.class)public MyService myService() {return new MyService();}
}14. Profile
概述: Profile根据环境配置加载特定的Bean。
使用场景: 在开发、测试、生产等不同环境下加载不同的Bean。
Configuration
public class ProfileConfig {BeanProfile(dev)public MyService devService() {return new MyService(Development Service);}BeanProfile(prod)public MyService prodService() {return new MyService(Production Service);}
}15. Scope
概述: Scope定义Bean的作用域单例、原型等。
使用场景: 在需要特定作用域的Bean定义中使用。
Component
Scope(prototype)
public class MyPrototypeBean {// Bean will have prototype scope
}16. Lazy
概述: Lazy指定Bean的延迟初始化。
使用场景: 在需要懒加载的Bean定义中使用减少启动时间。
Component
Lazy
public class MyLazyBean {public MyLazyBean() {System.out.println(MyLazyBean initialized);}
}17. PostConstruct 和 PreDestroy
概述: PostConstruct和PreDestroy分别用于在Bean初始化后和销毁前执行特定方法。
使用场景: 在Bean生命周期的特定点执行自定义逻辑。
Component
public class MyComponent {PostConstructpublic void init() {System.out.println(MyComponent initialized);}PreDestroypublic void destroy() {System.out.println(MyComponent about to be destroyed);}
}这些注解在Spring和Spring Boot中有机地结合在一起形成了一个功能丰富、易于使用的框架体系极大地简化了Java应用的开发。