在Spring Boot中,注解(Annotation)是核心特性之一,广泛用于配置和简化开发。以下是Spring Boot中一些常用的注解及其示例:
1. @SpringBootApplication
@SpringBootApplication
是一个组合注解,包括了@Configuration
、@EnableAutoConfiguration
和@ComponentScan
。它通常用在主类上,标识一个Spring Boot应用的入口。
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. @RestController
@RestController
结合了@Controller
和@ResponseBody
,用于创建RESTful Web服务。
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
@GetMapping("/hello")
public String hello() {
return "Hello, World!";
}
}
3. @RequestMapping
@RequestMapping
用于将HTTP请求映射到处理器方法上。可以用于类或方法级别。
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api")
public class ApiController {
@RequestMapping(value = "/users", method = RequestMethod.GET)
public List<String> getUsers() {
return Arrays.asList("User1", "User2", "User3");
}
}
4. @Autowired
@Autowired
用于自动注入依赖关系。它可以应用于构造函数、方法或字段上。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class MyService {
private final MyRepository myRepository;
@Autowired
public MyService(MyRepository myRepository) {
this.myRepository = myRepository;
}
// 其他业务逻辑
}
5. @Service
@Service
用于标识服务层的组件,Spring会自动将其注册为Bean。
import org.springframework.stereotype.Service;
@Service
public class UserService {
public String getUserById(Long id) {
// 业务逻辑
return "User" + id;
}
}
6. @Repository
@Repository
用于标识数据访问层的组件,通常与数据库交互。
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
// 自定义查询方法
}
7. @Configuration
@Configuration
用于定义配置类,该类可以包含@Bean
注解的方法,这些方法会返回Spring管理的Bean。
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyService();
}
}
8. @EnableAutoConfiguration
@EnableAutoConfiguration
告诉Spring Boot基于类路径中的Jar依赖自动配置Spring应用上下文。通常不直接使用,而是通过@SpringBootApplication
间接使用。
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
@EnableAutoConfiguration
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
9. @Component
@Component
泛指Spring管理的组件。可以标记为Bean的类,Spring会自动扫描并注册这些类。
import org.springframework.stereotype.Component;
@Component
public class MyComponent {
public void doSomething() {
// 组件逻辑
}
}
10. @Value
@Value
用于注入外部化配置的属性值。
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class MyComponent {
@Value("${app.name}")
private String appName;
public void printAppName() {
System.out.println(appName);
}
}
这些注解极大地简化了Spring Boot应用的配置和开发工作,使得开发者可以专注于业务逻辑。
标签:Spring,org,Boot,springframework,class,注解,import,public From: https://www.cnblogs.com/zxingduo/p/18197692