SpringBoot基础-了解Spring Boot及其常用注解

  • SpringBoot基础-了解Spring Boot及其常用注解

    • 了解 Spring Boot

    • Spring Boot 的常用注解

    • Spring Boot 的 starter

介绍Spring Boot基础知识;了解Spring Boot、常用注解、starter等。

了解 Spring Boot

了解 Spring Boot 项目结构

在创建好 Spring Boot 工程后,即可看到其基础结构。分为三个文件目录:

  1. src/main/java

  2. src/main/resources

  3. src/test/java

src/main/java :

  • 入口(启动)类及程序的开发目录。在这个目录下进行业务开发、创建实体层、控制器层、数据连接层等。

src/main/resources :

  • 资源文件目录。主要用于存放静态文件和配置文件。

  • static :用于存放静态资源,如层叠样式表 CSS(Cascading Style Sheets)文件、JavaScript 文件、图片等。

  • templates :用于存放模板文件。

  • application.properties :用于配置项目运行所需的配置数据。也可以用 YAML 文件。

src/test/java :

  • 测试程序所在的目录。

了解 Spring Boot 的入口类

在创建 Spring Boot 项目时,会自动创建一个用于启动的、名为“项目名+Application”的入口类,它是项目的启动入口。

默认为加上注解 @SpringBootApplication ,以标注这是 Spring Boot 项目的入口类。

在入口类中有一个 main 方法,其中使用了 SpringApplication 的静态 run 方法,并将入口类 和 main 方法的参数 args 传递了进去,以启动程序。

了解 Spring Boot 的自动配置

Spring Boot 会根据配置的依赖信息进行自动配置,从而减轻开发者搭建环境和配置的负担。

如果项目依赖了 spring-boot-starter-web ,则 Spring Boot 会自动配置 Web 环境(配置 Tomcat、WebMVC、Validator、JSON等)。

Spring Boot 自动配置是通过注解 @EnableAutoConfiguration 来实现的,具有非入侵性。

如果要查看当前有哪些自动配置,则可以使用 debug 调试命令: java -jar *.jar -debug 。

IDEA 中,可以单击 run->EditConfigurations 命令,在弹出的窗口中设置 Program arguments 参数为 --debug 。在启动应用程序之后,在控制台中即可看到条件评估报告(CONDITIONS EVALUATION REPORT)。

如果不需要某些自动配置,则可以通过注解@EnableAutoConfiguration 的 exclude 或 excludeName 属性来指定,或在配置文件 application.yml 中指定 spring.autoconfigure.exclude 的值。

Spring Boot 的常用注解

未来框架的趋势是“约定大于配置”,代码的封装会更严密。

开发人员会将更多的精力放在代码的整体优化和业务逻辑上,所以注解式编程会被更加广泛地使用。

什么是注解

注解(annotations) 用来定义一个类、属性或一些方法,以便程序能被编译处理。它相当于一个说明文件,告诉应用程序某个被注解的类或属性是什么,要怎么处理。

注解可以用于标注包、类、方法和变量等。

了解系统注解

  • @Override 用于修饰方法,表示此方法重写了父类方法。

  • @Deprecated 用于修饰方法,表示此方法已经过时。经常在版本升级后会遇到。

  • @SuppressWarnnings 告诉编译器忽视某类编译警告。

Spring Boot 的常用注解

  • @RestController

    • 使用位置:类名上;

    • 用于返回 JSON、XML等数据,但不能返回HTML页面。

    • 相当于注解 @ResponseBody 和注解 @Controller 合在一起的作用。

  • @Controller

    • 使用位置:类名上;

    • 声明此类是一个 SpringMVC Controller 对象;

    • 它用于标注控制器层,在 MVC 开发模式中代表 C(控制器)。

  • @Service

    • 使用位置:类名上;

    • 声明一个业务处理类(实现非接口类),用于标注服务层,处理业务逻辑。

  • @Repository

    • 使用位置:类名上;

    • 声明数据库访问类(实现非接口类)。

  • @Component

    • 使用位置:类名上;

    • 代表其是 Spring 管理类,常用在无法用 @Service 、@Repository 描述的 Spring 管理类上,相当于通用的注解。

    • 它用于把普通 POJO(Plain Ordinary Java Objects,简单的Java对象)实例化到 Spring 容器中。

  • @Configuration

    • 使用位置:类名上;

    • 声明此类是一个配置类,常与 @Bean 配合使用;

    • 它用于标注配置类,并且可以由 Spring 容器自动处理。它作为 Bean 的载体,用来指示一个类声明、一个或多个 @Bean 方法,在运行时为这些 Bean 生成 BeanDefinition 和服务请求。

  • @Resource

    • 使用位置:类名上、属性;

    • @Autowired 和 @Resource 都用来装配 Bean ,也都可以写在字段上或 Setter 方法上。

    • 默认按 byName 自动注入。

  • @Autowired

    • 使用位置:类名上、属性或构造函数参数上;

    • 它表示被修饰的类需要注入对象。Spring 会扫描所有被 @Autowired 标注的类,然后根据类型在 IoC 容器中找到匹配的类对象进行注入。

    • 默认按 byType 自动注入。

  • @RequestMapping

    • 使用位置:类名或方法上;

    • 它用来处理请求地址映射。如果用在类上,则表示类中的所有响应请求的方法都是以该地址作为父路径的。该注解有6个属性。

    • params : 指定 request 中必须包含某些参数值,才让该方法处理。

    • headers :指定 request 中必须包含某些指定的 header 值,才能让该方法处理请求。

    • value :指标请求的实际地址,指标的地址可以是 URI Template 模式。

    • method :指定请求的 method 类型,如 GET、POST、PUT、DELETE等。

    • consumes :指定处理请求的提交内容类型 Content-Type,如“application/json,text/html”。

    • produces :指定返回的内容类型。只有当 request 请求头中的 accept 类型中包含该指定类型时才返回。

Spring Boot 的 starter

Spring Boot 为了简化配置,提供了非常多的 starter 。

它先打包好与常用模块相关的所有 JAR ,并且完成自动配置,然后组装成 starter 。

这使得在开发业务代码时不需要关注框架的配置,只需要关注业务逻辑即可。

如把 Web 相关的 Spring MVC、容器等打包好后组装成 spring-boot-starter-web。

Spring Boot 提供了很多开箱即用的 starter ,大概有近50种。

在 pom.xml 中添加某个 starter 的 <dependency> 依赖时,如果依赖项没有版本号,则 Spring Boot 会根据自己的版本号自动关联。如果需要特定的版本,则需要加上 version 元素。

公众号

参考

《Spring Boot 实战派》 龙中华

原文始发于微信公众号(知行chen):SpringBoot基础-了解Spring Boot及其常用注解

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/45951.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!