SpringBoot 注解
来记录一下springBoot使用频率较高的注解
@SpringBootApplication(启动类)
是Sprnig Boot项目的核心注解,目的是开启自动配置
先做下记录,有时间再深入探索SpringApplication执行流程 可参考:https://blog.csdn.net/qq_28289405/article/details/81302498
1 2 3 4 5 6 | @SpringBootApplication public class AdminApplication { public static void main(String[] args) { SpringApplication.run(AdminApplication. class , args); } } |
@Controller (注入服务)
用于标注控制层,相当于struts中的action层
1 2 3 4 | @Controller public class OrderController { } |
1 | @Service (注入dao) |
1 | 用于标注服务层,主要用来进行业务的逻辑处理 |
1 2 3 4 | @Service public class OrderServiceImpl implements OrderService { } |
@Repository(实现dao访问)
用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件.
使用@Repository注解可以确保DAO或者repositories提供异常转译,这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置,同时也不需要为它们提供XML配置项。
1 2 3 4 | @Repository public class OrderDao { } |
@ResponseBody(控制器返回)
将结果写入HTTP response body中,比如异步获取json数据,会直接返回json数据
1 2 3 4 5 | @ResponseBody public CommonResult<CommonPage<Order>> list( @RequestBody Order order) { } |
@RestController(@Controller+@ResponseBody)
用于标注控制层组件,是@Controller和@ResponseBody的合集,表示这是个控制器bean,并且是将函数的返回值直接填入HTTP响应体中,是REST风格的控制器。
1 2 3 4 | @RestController public class OrderController { } |
@Component(组件)
@Service、@Repository是它的扩展,它可以作用在任何层次
1 2 3 4 5 6 7 8 9 | @Component public class UserComponentImpl implements IUser { private String name = "UserComponentImpl" ; @Override public String get() { return name; } } |
@Bean(容器组件对象注入)
注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法
Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中。
@Bean可以应用在很多方法上
1 2 3 4 | @Bean public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } |
其实前面好几个注解都是声明Bean的注解
- @Component 没有明确角色的组件
- @Service 在业务逻辑层(Service层)使用
- @Repositpry 在数据访问层(dao层)使用
- @Controller 用于标注控制层组件
- @RestController
可参考:https://blog.csdn.net/lipinganq/article/details/79155072
在讲一下和路由相关的注解
@RequestMapping
提供路由信息,负责URL到Controller中的具体函数的映射,方法返回值通常解析为跳转路径。
1 2 3 4 5 6 7 | @RequestMapping ( "/order" ) public class OrderController { @RequestMapping (value = "/list" , method = RequestMethod.GET) public CommonResult create( @RequestBody Order order) { } } |
还有一些swagger相关的注解
@Api
对类的说明
1 | @Api (tags = "OrderController" , description = "订单管理" ) |
@ApiOperation
请求方法的说明
1 | @ApiOperation ( "查询订单" ) |
还有
@ApiImplicitParams
@ApiResponses
@ApiModel
可参考:swagger2 注解整体说明 https://www.cnblogs.com/cxscode/p/11733140.html
@Override
告诉编译器这个方法是一个重写方法,如果父类或者被实现的接口不存在该方法,
编译器便会报错,提示该方法没有重写父类中的方法
1 2 3 4 5 6 7 8 9 10 11 12 | public interface OrderService { List<Order> list(OrderQueryParam queryParam, Integer pageSize, Integer pageNum); } @Service public class NoticeServiceImpl implements NoticeService { @Override public List<Order> list(OrderQueryParam queryParam, Integer pageSize, Integer pageNum) { PageHelper.startPage(pageNum, pageSize); return orderDao.getList(queryParam); } } |
部分参考:
https://www.cnblogs.com/clwydjgs/p/9255083.html
SpringBoot注解:https://www.jianshu.com/p/005abebce09d
声明Bean的注解:https://blog.csdn.net/lipinganq/article/details/79155072
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!