开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 29 天,点击查看活动详情
1. @ SpringBootApplication
我们在应用程序的主类中使用此注释来启用自动配置和组件扫描等 Spring Boot 功能。
SpringBootApplication 注解服务于以下注解组合的目的。
@Enable Autoconfiguration — 启用 Spring Boot 的自动配置功能。
@ComponentScan — 启用组件扫描。
@ 配置 — 启用基于 Java 的配置。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
2. @ Component
我们在类级别使用这个注解,用@Component注解的类将被扫描为spring-managed beans,我们不需要编写显式代码来扫描我们创建的自定义bean。
Spring 还提供了 3 个特定的 Stereotype 注释,用于使类成为组件——服务、控制器和存储库(在本节中进一步讨论)
例子
import org.springframework.stereotype.Component;
@Component
public class HelloWorld {
//Logic
}
3. @ Service
这是将类注释为服务层,这只是意味着该类将持有应用程序的业务逻辑,并且此注释没有其他用途。
@Service
public class HelloWorld {
//Business Logic
}
4. @ Repository
它与处理应用程序的 DAO(数据访问对象)层的类一起使用,或者与处理数据库 CRUD 操作的存储库类一起使用
@Repository
public class HelloWorld {
//Database Crud Operations
}
5. @ Controller
用@Controller 注释的类将处理所有用户请求并返回适当的响应。此注解用于 Restful Web 服务来处理请求和响应。
6. @ RequestMapping
此注释与 @Controller 注释一起使用以将 HTTP 请求映射到适当的处理程序方法。这可以在类级别或方法级别使用。
@Controller 、@RequestMapping 的例子
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/hello")
public class HelloWorld {
//Http Methods
}
7. @ Autowired
Autowired 自动注入对 spring 管理的组件的依赖,简单来说就是为你初始化对象。
我们可以使用@Autowired注解的有3种类型,这需要另外一篇文章来详细解释。:)
@Controller
@RequestMapping("/hello")
public class HelloWorld {
@Autowired
HelloService helloService;
//Http Methods
}
8.@ Qualifier
当 spring 发现多个相同类型的 bean 时,在管理依赖注入时可能存在歧义,使用 @Qualifier 注解我们可以指定我们要注入的 bean 的名称
@Controller
@RequestMapping("/hello")
public class HelloWorld {
@Autowired
@Qualifier("helloServiceBean")
HelloService helloService;
//Http Methods
}
9.@ Bean
这是方法级别的注释,用于返回要在 spring 上下文中管理的 bean 的方法。它通常用于配置类。
10 @ Configuration
一个用@Configuration注解的类,表示该类将被用来声明多个返回spring beans的方法
@Configuration 和@Bean 注解示例
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class HelloWorld {
@Bean
public HelloClass collegeBean()
{
return new HelloClass();
}
}
这些也是面试中问得最多的注解,spring 应用程序将主要使用这些注解,因此了解其用途及其在应用程序中的使用方式非常重要。