Anotaciones comunes de Java (actualizadas continuamente)

Notas sobre anotaciones comunes en Java (actualizadas continuamente):

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, @Overridela anotación identifica que el método Dogde la clase moveanula el método Animalde 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, @Deprecatedla anotación identifica que la clase OldClassestá obsoleta y el método oldMethodtambié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, @SuppressWarningsla 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, @SafeVarargsla 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, @FunctionalInterfacela anotación identifica que la interfaz GreetingServicees 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, @Selectla anotación indica que la cadena SQL está asignada al getUserByIdmé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, @Updatela anotación significa asignar la cadena SQL al updateUserByIdmé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, @Insertla anotación significa asignar la cadena SQL al addUsermétodo, donde #{name}y #{age}representan marcadores de posición, que se Userreemplazan 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, @Deletela anotación indica que la cadena SQL está asignada al deleteUserByIdmé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 @Autowiredse inyecta automáticamente y no es necesario crear manualmente el objeto a través de la palabra clave.UserDaonew

2. @Servicio

Se utiliza para identificar los componentes de la capa de servicio.

@Service
public class UserServiceImpl implements UserService {
    
    
    // ...
}

En el ejemplo anterior, @Servicela 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, @Controllerla anotación indica que la clase es un componente de la capa del controlador que puede procesar /userlos 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, @RequestMappingla anotación indica que la ruta de solicitud es /user/list, el método de solicitud es GETy 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, @EnableAutoConfigurationy .@ComponentScan

@SpringBootApplication
public class MyApplication {
    
    
    public static void main(String[] args) {
    
    
        SpringApplication.run(MyApplication.class, args);
    }
}

En el ejemplo anterior, @SpringBootApplicationla 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 JSONdatos 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, @RestControllerla anotación indica que la clase puede manejar /userla solicitud y devolver JSONdatos 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, @RequestMappingla anotación indica que la ruta de solicitud es /user/{id}, el método de solicitud es GETy 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, @Tablela 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, @Columnla 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, @GeneratedValuela 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, @Idla anotación indica que el campo es la clave principal.

Supongo que te gusta

Origin blog.csdn.net/weixin_52357829/article/details/131351984
Recomendado
Clasificación