Notas sobre anotaciones comunes en Java (actualizadas continuamente):
Tabla de contenido
1. Anotaciones básicas de Java
1. @Anular
Se utiliza para identificar la reescritura de métodos, de modo que se pueda llamar al método reescrito al llamar al método de la clase principal.
public class Animal {
public void move() {
System.out.println("动物在移动");
}
}
public class Dog extends Animal {
@Override
public void move() {
System.out.println("狗在奔跑");
}
}
En el ejemplo anterior, @Override
la anotación identifica que el método Dog
de la clase move
anula el método Animal
de la clase principal move
.
2. @En desuso
Se utiliza para identificar que el método o la clase está obsoleto y no se recomienda.
@Deprecated
public class OldClass {
// ...
}
public class NewClass {
/**
* @deprecated 不推荐使用
*/
@Deprecated
public void oldMethod() {
// ...
}
}
En el ejemplo anterior, @Deprecated
la anotación identifica que la clase OldClass
está obsoleta y el método oldMethod
también está obsoleto y no se recomienda.
3. @Suprimir advertencias
Se utiliza para suprimir las advertencias del compilador.
@SuppressWarnings("unchecked")
List<String> list = new ArrayList();
En el ejemplo anterior, @SuppressWarnings
la anotación suprime la advertencia del compilador y List<String> list = new ArrayList()
la declaración ya no emite un mensaje de advertencia.
4. @SafeVarargs
Es seguro identificar un tipo genérico en un constructor variádico genérico o en una declaración de método.
@SafeVarargs
public final <T> void doSomething(T... args) {
// ...
}
En el ejemplo anterior, @SafeVarargs
la anotación identifica que el tipo de parámetro de variable genérica es seguro y el compilador ya no emitirá un mensaje de advertencia.
5. @InterfazFuncional
Se utiliza para identificar una interfaz como una interfaz funcional, es decir, una interfaz que contiene solo un método abstracto.
@FunctionalInterface
public interface GreetingService {
void greet(String name);
}
En el ejemplo anterior, @FunctionalInterface
la anotación identifica que la interfaz GreetingService
es una interfaz funcional que contiene solo un método abstracto greet
.
Dos, anotaciones de MyBatis
1. @Seleccionar
Se utiliza para asignar una consulta SQL.
@Select("SELECT * FROM user WHERE id = #{id}")
User getUserById(Long id);
En el ejemplo anterior, @Select
la anotación indica que la cadena SQL está asignada al getUserById
método, donde #{id}
el marcador de posición se reemplaza por el parámetro del método.
2. @Actualizar
Se utiliza para asignar un SQL de actualización.
@Update("UPDATE user SET name = #{name} WHERE id = #{id}")
int updateUserById(Long id, String name);
En el ejemplo anterior, @Update
la anotación significa asignar la cadena SQL al updateUserById
método, donde #{id}
y #{name}
representan marcadores de posición, que se reemplazan por parámetros de método.
3. @Insertar
Se utiliza para asignar un SQL de inserción.
@Insert("INSERT INTO user(name, age) VALUES(#{name}, #{age})")
int addUser(User user);
En el ejemplo anterior, @Insert
la anotación significa asignar la cadena SQL al addUser
método, donde #{name}
y #{age}
representan marcadores de posición, que se User
reemplazan por las propiedades del objeto.
4. @Eliminar
Se utiliza para asignar un SQL de eliminación.
@Delete("DELETE FROM user WHERE id = #{id}")
int deleteUserById(Long id);
En el ejemplo anterior, @Delete
la anotación indica que la cadena SQL está asignada al deleteUserById
método, donde #{id}
el marcador de posición se reemplaza por el parámetro del método.
3. Anotaciones de primavera
1. @autocableado
Autowiring para inyección automática de dependencias.
@Service
public class UserServiceImpl继续:
```java
@Autowired
private UserDao userDao;
public User getUserById(Long id) {
return userDao.getUserById(id);
}
En el ejemplo anterior, la anotación indica que el componente @Autowired
se inyecta automáticamente y no es necesario crear manualmente el objeto a través de la palabra clave.UserDao
new
2. @Servicio
Se utiliza para identificar los componentes de la capa de servicio.
@Service
public class UserServiceImpl implements UserService {
// ...
}
En el ejemplo anterior, @Service
la anotación indica que la clase es un componente de capa de servicio que otros componentes pueden inyectar automáticamente.
3. @Controlador
Se utiliza para identificar los componentes de la capa del controlador.
@Controller
@RequestMapping("/user")
public class UserController {
// ...
}
En el ejemplo anterior, @Controller
la anotación indica que la clase es un componente de la capa del controlador que puede procesar /user
los datos solicitados.
4. @RequestMapping
Se utiliza para asignar rutas de solicitud y métodos de solicitud.
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping(value = "/list", method = RequestMethod.GET)
public String userList() {
// ...
}
}
En el ejemplo anterior, @RequestMapping
la anotación indica que la ruta de solicitud es /user/list
, el método de solicitud es GET
y el método de procesamiento correspondiente es userList
.
Cuatro, anotaciones Spring Boot
1. @SpringBootApplication
Se utiliza para identificar la clase de inicio, incluidas tres anotaciones de @Configuration
, @EnableAutoConfiguration
y .@ComponentScan
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
En el ejemplo anterior, @SpringBootApplication
la anotación indica que la clase es la clase de inicio de la aplicación Spring Boot.
2. @Habilitar configuración automática
Configuración automática, se configura automáticamente de acuerdo con las dependencias bajo la ruta de clase y los beans definidos por el proyecto.
3. @RestController
Similar @Controller
, pero todos los métodos en él devuelven JSON
datos formateados.
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
return userService.getUserById(id);
}
}
En el ejemplo anterior, @RestController
la anotación indica que la clase puede manejar /user
la solicitud y devolver JSON
datos formateados.
4. @RequestMapping
Se utiliza para asignar rutas de solicitud y métodos de solicitud.
@RestController
@RequestMapping("/user")
public class UserController {
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
// ...
}
}
En el ejemplo anterior, @RequestMapping
la anotación indica que la ruta de solicitud es /user/{id}
, el método de solicitud es GET
y el método de procesamiento correspondiente es getUserById
.
5. Notas MySQL
1. @Mesa
Se utiliza para identificar nombres de tablas.
@Table(name = "user")
public class User {
// ...
}
En el ejemplo anterior, @Table
la anotación indica el nombre de la tabla correspondiente a la clase de entidad user
.
2. @Columna
Se utiliza para identificar nombres de campo.
@Table(name = "user")
public class User {
@Column(name = "user_id")
private Long id;
// ...
}
En el ejemplo anterior, @Column
la anotación indica el nombre de la columna correspondiente al campo user_id
.
3. @ValorGenerado
Se utiliza para identificar que este campo se genera automáticamente.
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// ...
}
En el ejemplo anterior, @GeneratedValue
la anotación indica que la base de datos genera e incrementa automáticamente el campo.
4. @Identificación
Se utiliza para identificar el campo de clave principal.
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
// ...
}
En el ejemplo anterior, @Id
la anotación indica que el campo es la clave principal.