标签:常用 SpringBoot 配置 Controller 注解 方法 类名
注解式编程是当先流行性的趋势,注解式的编程的内在的底层逻辑“约定大于配置”,代码的封装会更加的严密,开发人员将更多的关注代码的整体优化和业务逻辑上,所以注解式的编程会被更加广泛的应用。
约定大于配置
对于约定大于配置的趋势理解:
- 开发人员仅仅需要规定应用中不符合约定的部分
- 在没有规定配置的地方,采用默认配置,默认配置往往是通用且必要配置
核心思想是推荐默认配置的思想,那么这个遵循默认的通用配置就是约定大于配置的核心思想,约定大于配置其实是工程标准化的体现,标准化带来的是效率的提升,这个在用spring搭建web项目对比使用SpringBoot搭建web项目的对比,就能看出用SpringBoot搭建项目的的效率之高。
注解式编程
简单的说就是通过注解而不是通过实际编码完成代码编写的便捷方法,被注解的类、属性、方法能被编译处理后形成我们预期的代码块。
注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。
关于注解的基础知识还有很多很多,这篇就不继续深入,接下来进入本篇正题,SpringBoot注解相对于jdk体系注解,属于自定义注解范畴,SpringBoot的常用注解有哪些?
SpringBoot的常用注解
1、使用在类名上注解
注解 | 使用位置 | 说明 |
---|---|---|
@RestController | 类名 | 作用相当于@ResponseBody加@Controller |
@Controller | 类名 | 声明此类是一个SpringMvc Controller对象 |
@Service | 类名 | 声明此类是一个业务处理类(实现非接口类) |
@Repository | 类名 | 声明此类是一个数据访问类(实现非接口类) |
@Component | 类名 | 代表其是Spring的管理类,常用于无法用@Service、@Repository、@Controller描述的Spring管理类上,相当于通用的注解 |
@Configuration | 类名 | 声明此类是一个配置类,常与@Bean配合使用 |
@Resource | 类名、属性、构造函数参数 | 默认按照byName自动注入 |
@Autowired | 类名、属性、构造函数参数 | 默认按照byName自动注入 |
@RequestMapping | 类名、方法 | 如果用在类上,表明所有响应请求的方法都是以该地址作为父路径的 |
@Transactional | 类名、方法 | 用于处理事务 |
@Qualifier | 类名、属性 | 为Bean指定名称,随后再通过名字引用Bean |
部分再解释:
@RestController
它返回Json(JavaScript Object Notation,js对象简谱)、XML(eXtensible Markup Language)等数据,但是不能返回HTML页面,相当于@ResponseBody和@Controller两个注解合在一起的使用。
2、使用在方法上的注解
注解 | 使用位置 | 说明 |
---|---|---|
@RequestBody | 方法参数前 | 常用来处理application/json,application/xml等content-type类型的数据,意味着HTTP消息是json/xml格式,需要将其转换成指定类型的参数。 |
@PathVariable | 方法参数前 | 将url获取的参数映射到方法参数上。 |
@Bean | 方法上 | 声明该方法的返回结果是一个由Spring容器管理的bean。 |
@ResponseBody | 方法上 | 通过适当的的HttpMessageConverter将控制器中的方法的返回对象转换成指定格式的(json/xml)后,写入Response对象的body数据区。 |
3、其它注解
SpringBoot还有一些其它的常用注解,诸如@EnableAutoConfiguration、@SpringBootApplication、@EnableScheduliing、@EnableAsync、@ComponentScan、@Aspec、@ControllerAdvice、@ExceptionHandler、@Value。
标签:常用,SpringBoot,配置,Controller,注解,方法,类名 来源: https://blog.51cto.com/u_15254659/2952003
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。