-
SpringBoot基础-了解Spring Boot及其常用注解
-
了解 Spring Boot
-
Spring Boot 的常用注解
-
Spring Boot 的 starter
介绍Spring Boot基础知识;了解Spring Boot、常用注解、starter等。
了解 Spring Boot
了解 Spring Boot 项目结构
在创建好 Spring Boot 工程后,即可看到其基础结构。分为三个文件目录:
-
src/main/java
-
src/main/resources
-
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