1. @Component
, указывающий компонент, размещенный в Spring, обычно используемый для маркировки классов бизнес-логики, отмеченные классы будут автоматически сканироваться и добавляться в контейнер Spring или могут быть заменены другими более конкретными аннотациями, такими как @Service
, @Repository
и@Controller
@Component
public class MyComponent {
// ...
}
2. @Autowired
, чтобы автоматически собрать компонент, управляемый Spring, который можно использовать в конструкторах, свойствах и методах установки, и Spring автоматически введет для него необходимые зависимости.Если есть несколько совпадающих классов реализации, вы можете использовать @Qualifier` для указать конкретный класс реализации.
@Component
public class MyComponent{
private MyService myService;
@Autowired
public MyComponent(MyService myService) {
this.myService = myService;
}
// ...
}
3. @Qualifier
, когда интерфейс имеет несколько классов реализации, он используется для указания конкретного класса реализации
4. @Comfiguration
, указывает класс конфигурации, который используется для определения Bean в контексте приложения Spring, и отмеченный класс будет автоматически сканироваться и добавлен контейнером Spring в контейнер
@Configuration
public class MyComfiguration {
@Bean
public MyService myService(){
return new MyServiceImpl();
}
// ...
}
5. @Bean
, используемый в классе конфигурации, представляет Spring Bean, отмеченный метод может возвращать объект, Spring автоматически добавит объект в контейнер и автоматически соберет его зависимости
@Configuration
public class MyComfiguration {
@Bean
public MyService myService(){
return new MyServiceImpl();
}
// ...
}
6. @Value
, используется для чтения значений свойств из конфигурационного файла.Отмеченные свойства могут быть базовых типов данных, строк, массивов, коллекций и т. д. Вы можете обращаться к свойствам в конфигурационном файле в виде ${property .имя} значение
@Configuration
public class MyComponent {
@Value("${property.name}")
private String myProperty;
// ...
}
7. @RequestMapping
определить запрос сопоставления, который используется для сопоставления запроса с соответствующим методом, который можно использовать для классов и методов,
@RestController
@RequestMapping("/api")
public class MyController {
@GetMapping("/hello")
public String hello() {
return "Hello, world!";
}
// ...
}
8. @Transactional
, используемый для выполнения обработки транзакций в методе под управлением транзакциями Spring, отмеченный метод автоматически запускает транзакцию и автоматически откатывается, если возникает ошибка выполнения метода.
@Service
public class MyService {
@Autowired
private UserRepository userRepository;
@Transactional
public void createUser(User user) {
userRepository.save(user);
}
}
9. @PathVariable
, используемый для сопоставления переменных в URL-адресе с параметрами метода, отмеченные параметры будут автоматически собраны с соответствующими значениями в URL-адресе.
@RestController
@RequestMapping("/api")
public class MyController {
@GetMapping("/users/{userId}")
public User getUser(@PathVariable Long userId) {
// ...
}
// ...
}
Можно добавить больше аннотаций Spring...