# Explicación básica de anotaciones comunes de Spring Boot

Explicación básica de la anotación común de Spring Boot


@Autowired

  • Los objetos utilizados para inyectar dependencias se pueden utilizar para métodos de establecimiento, métodos de construcción y campos. Está package org.springframework.beans.factory.annotation;el comentario dentro. Ensamblar objetos dependientes según el tipo (ByType). El valor predeterminado es que el objeto inyectado debe existir, si el objeto no existe, se informará un error @Autowired(required=false)y se podrá utilizar el objeto inyectado.

  • @QualifierSe usa junto con anotaciones. Esto significa que el nombre del bean actualmente inyectado es el @Qualifierúltimo bean. Tenga en cuenta que el @Qualifierúltimo bean debe existir durante el uso, de lo contrario se informará un error.

Ejemplo @ Objeto inyectado con conexión automática
@Component
public class AnnoationClazz {
    
    

    private UserService userService;

    @Autowired
    RedisProperties redis;

    @Autowired(required = true)
    public void setUserService(@Qualifier("userService") UserService userService) {
    
    
        this.userService = userService;
    }
}
Ejemplo @Autowried inyectando objetos estáticos
@Component
public class AnnoationClazz {
    
    
    
    private static RedisProperties redisProperties;

    @Autowired(required = true)
    public void setRedisProperties(RedisProperties redisProperties) {
    
    
        AnnoationClazz.redisProperties=redisProperties;
    }
}

@Recurso

  • El método de inyección predeterminado es ByName, que es la java.lang.annotation.*siguiente clase.
  • Hay atributos de Nombre y Tipo, Spring @Resourceanaliza el nombre anotado en el nombre del bean y Type es el tipo de bean. Si se usa el atributo name, se usa la estrategia de inyección automática de byName, y cuando se usa el atributo type, se usa la estrategia de inyección automática de byType. Si no se especifica ni el atributo name ni type, se utilizará la estrategia de inyección automática byName a través del mecanismo de reflexión
Objeto inyectado de instancia @Resource
@Resource
private UserService userervice;

@Resource
private void setUserService(UserService userService){
    
    
    this.userService=userService;
}

@RequestParam

  • Los parámetros recibidos por @RequestParam provienen de requestHeader.
  • Asigne los parámetros sobre la URL solicitada a los parámetros del método.
  • Por ejemplo, la URL solicitada eslocalhost:9999/request/test2?name=张三&age=1
Instance @RequestParam recibe parámetros de solicitud
@RequestMapping("/test2")
public String getMap(@RequestParam String name,int age) {
    
    
    System.out.println("方法请求到了!");
    return name+String.valueOf(age);
}

@RequestCuerpo

  • @RequestBody recibe parámetros de requestBody y el cuerpo de la solicitud.
  • Por lo general, para el procesamiento de los no- Content-Type: application/x-www-form-urlencodedcodificación de datos de formato, tales como: application/json, application/xmly otros tipos de datos.
Parámetros de recepción de instancias
@RequestMapping("/test1")
public List<String> getList(@RequestBody List<String> list){
    
    
    System.out.println("方法请求到了!");
    return list;
}

AthPathVariable

  • Obtener los datos en Url
  • URL como:localhost:9999/request/test3/12/张三
Obtenga los datos en la URL
@RequestMapping("/test3/{age}/{name}")
public String str(@PathVariable("age") int age,@PathVariable("name") String name) {
    
    
    return age+name;
}

@Componente

  • Indica que una clase es una clase de componente y Spring necesita crear un Bean para esta clase.
  • @Component (@Controller, @Service, @Respository) se ensambla automáticamente en el contenedor Bean a través del escaneo de classpath.

@Frijol

  • Indica que es un método en una clase de configuración y devuelve un objeto al contenedor Spring, que debe registrarse como Bean en el contexto Spring.
  • El método marcado como Bean generalmente describe la lógica de generar objetos Bean.
@Component
public class TestComponent {
    
    
	
	@Bean
	public User getUser() {
    
    
		User user =new User(1,"张三",new Date());
		return user;
	}
}

@PostConstruct

  • Es la propia anotación de Java.javax.annotation.PostConstruct
  • El orden de la anotación en toda la inicialización del Bean es: Constructor -> @ Autowired -> @ PostConstruct
Objeto estático de inicialización de instancia
@Component
public class UserUtils {
    
    
	
	private Logger logger=Logger.getLogger(UserUtils.class);
	
	private static User users;
	
	@Autowired
	User user;
		
	@PostConstruct
	public void init() {
    
    
		UserUtils.users=user;
	}
	
	public static Map<String,String> getUserMap(){
    
    
		Map<String,String> map=new HashMap<String, String>();
		map.put("age",String.valueOf(users.getAge()));
		map.put("name",users.getName());
		map.put("date", String.valueOf(users.getDate()));
		return map;		
	}
}

@Calificatorio

  • Cuando hay varios beans de un tipo, puede usar @Qualifier ("nombre") para especificar. Úselo con la anotación @Autowired.

@PropertySource

  • Especifique la dirección del archivo de configuración que se leerá y utilícela con la anotación @Value.
@Component
@PropertySource(value = {
    
    "redis.properties"})
public class RedisProperties {
    
    
	
	@Value("${redis.url}")
	private String url;
	
	@Value("${redis.password}")
	private String password;
	
	@Value("${redis.username}")
	private String username;

}

Supongo que te gusta

Origin blog.csdn.net/qq_37248504/article/details/108859121
Recomendado
Clasificación