admin管理员组

文章数量:1794759

SpringBoot 常用注解

SpringBoot 常用注解

SpringBoot 常用注解 – 容器配置 注解

摘自:mp.weixin.qq/s/dWIO1bfmMhVWo1ZPVIS09Q

@Autowired 说明:

@Autowired注解用于标记Spring将要解析和注入的依赖项。此注解可以作用在构造函数、字段和setter方法上。

示例(作用于构造函数) @RestController public class UserController { private UserService userService; @Autowired UserController(UserService userService){ this.userService userService; } } 示例(作用于setter方法) @RestController public class UserController{ private UserService userService; @Autowired public void setUserService(UserService userService){ this.userService userService; } } 示例(作用于字段) @RestController public class UserController { @Autowired private UserService userService; // .. } @Primary 说明:

当系统中需要配置多个具有相同类型的bean时,@Primary可以定义这些Bean的优先级。

示例: public interface Messageservice { String sendMessage(); } @Component public class EmailMessageServiceImpl implements Messageservice { @Override public string sendMessage(){ return "this is send email method message."; } } @Component public class WechatMessageImpl implements Messageservice { @Override public String sendMessage(){ return "this is send wechat method message."; } } @Primary @Component public class DingDingMessageImple implements Messageservice{ @Override public String sendMessage(){ return "this is send DingDing method message."; } } @RestController public class MessageController{ @Autowired private MessageService messageService; @GetMapping("/info") public string info(){ return messageService.sendMessage(); } }

输出结果:this is send DingDing method message.

@PostConstruct与@PreDestroy 说明:

值得注意的是,这两个注解不属于Spring,它们是源于JSR-250中的两个注解,位于common-annotations.jar中。@PostConstruct注解用于标注在Bean被Spring初始化之前需要执行的方法。@PreDestroy注解用于标注Bean被销毁前需要执行的方法。

示例: @Component public class DemoComponent { private List<string>list = new ArrayList(); @PostConstruct public void init(){ list.add("hello"); list.add("world"); } @PreDestroy public void destroy(){ list.clear() } } @Qualifier 说明:

当系统中存在同一类型的多个Bean时,@Autowired在进行依赖注入的时候就不知道该选择哪一个实现类进行注入。此时,我们可以使用@Qualifier注解来微调,帮助@Autowired选择正确的依赖项。

示例: public interface MessageService { public String sendMessage(String message); } @Service("emailService") public class EmailServiceImple implements Messageservice { @Override public String sendMessage(String message){ return "send email,content:"+message; } } @Service("smsService") public class SMSServiceImpl implements Messageservice{ @Override public String sendMessage(String message){ return "send SMS,content:"+message; } } public interface MessageProcessor { public String processMessage(String message); } public class MessageProcessorImpl implements MessageProcessor{ private MessageService messageService; @Autowired @Qualifier("emailService") public void setMessageService(MessageService messageService){ this.messageService messageservice; } @Override public String processMessage(String message){ return messageService.sendMessage(message); } }

本文标签: 注解常用SpringBoot