什么是spring、Spring Boot? 他们的一些注解的含义

spring介绍

%title插图%num

spring的核心是提供了一个容器,一般叫spring应用上下文(spring application context),他们会生成和管理应用组件。被spring管理的组件叫做bean,会在spring应用上下文中组装到一起,从而形成一个完整的程序。

通俗一点说,就像是砖头,沙子,水泥……重复组装,盖了一所房子。

把bean组装在一起的行为是基于依赖注入(IOC或者DI)的模式实现的。就像是你有一个管家,在你盖房子的时候,需要水泥,他递给你,需要砖头,他递给你。

在管家给你递砖头的时候,他自己偷偷记了一笔,大帅比在2021年4月13日使用砖头一块。而你却毫无感觉,这个是spring的另外一大特性:面向切面编程(AOP)

spring自带了一个web框架,叫Spring MVC,Spring MVC是一个控制器的概念。主要是处理一下请求并以某种方式(返回视图或者返回消息、文件流等等)进行信息响应的类。

在spring引用上下文中,组件(通常称为bean)既可以使用java或xml显示声明,也可以通过组件扫描发现,还可以使用spring boot自动配置功能实现自动化配置。

spring boot

%title插图%num

spring boot是spring的框架的拓展,也就是冒蓝火的加特林,springboot能基于类路径中的条目、环境变量和其他因素合理猜测需要配置的组件并将它们组装到一起(程序员的猜你喜欢,哈哈哈哈),通过简化依赖管理、自动装配和运行时洞察,使spring更简单。

spirngboot默认打包是jar包的方式,如果需要修改成war包,需要单独去配置。

注解以及注解的含义

  • @SpringBootApplication:应用于springboot的启动类上面的注解,这个注解明确表明这是一个springboot应用。但是他其实是个三合一注解(其中包括1、@SpringBootConfiguration将该类声明为配置类。2、@EnableAutoConfiguration启用springboot的自动配置。3、@ComponentScan启用组件扫描。)。
  • @RunWith(SpringRunner.class):是Junit的注解,他会提供一个测试运行器(runner)来指导JUnit如何运行测试。
  • @SpringBootTest:会告诉JUnit在启动测试的时候要添加上springboot的功能。(springboot:Junit老铁,带带我)
  • @Controller:主要作用是让spring大哥扫描的时候带上他,并且给他放到spring的应用上下文中,在控制层用这个注解主要是描述他在这个位置的角色,用@Service、@Component、@Repository等作用差不多相同。
  • @GetMapping:一般会写@GetMapping(“/index”)等,他主要是处理get请求,在访问/index的时候,注解的方法,这个方法是返回视图还是其他信息,就自己定义了。或者说他像是一个门牌号一样的东西,证明这个快递投递到这里(证明这个请求是发送到这里的),至于签收,方法内部处理。
  • @Date:是由Lombok提供的注解,标注到类上他会生成这个类所有缺失的方法,同时还会生成所有以final属性作为参数的构造器。常见于生成getset方法。
  • @Slf4j:也是Lombok生成的注解,声明slf4j类中调用log方法。
  • @RequestMapping:是@GetMapping、@PostMapping的组合体,他也可以声明该方法是否可以post/get的等。也可以用到类上。
  • @Repository:加了这个注解,就会被spring大哥扫描到,加入spring的应用上下文中
  • @Bean:用来在spring应用上下文中声明bean。
  • @AuthenticationPrincipal:将已认证的用户信息注入到控制器中。

标签

发表评论