关于java:SpringBoot项目中注解的含义

5次阅读

共计 1819 个字符,预计需要花费 5 分钟才能阅读完成。

@Component

@Component:是 Spring 中用于形容 Bean 类的一个注解。用于通知 Spring 这个类的实例由 Spring 创立,当此对象由 Spring 创立和治理时,默认会将对象存储到池 (Bean 池) 中。

@Controller
public class GoodsController {}

@SpringBootTest

@SpringBootTest:该注解用于通知 spring 框架,此测试类交给 spring 治理。

@SpringBootTest
public class GoodsDaoTest {}

@Autowired 和 @Qualifier

@Autowired: 该注解形容属性时,用于通知 spring 框架要为此属性注入一个值。其根本规定是:

  1. 首先,要检测容器中是否有与属性或办法参数类型匹配的对象,如果有并且只有一个则间接注入。
  2. 其次,如果检测到有多个,还会依照 @Autowired 形容的属性或办法参数名查找是否有名字匹配的对象,有则间接注入,没有则抛出异样。
  3. 最初,如果咱们有明确要求,必须要注入类型为指定类型,名字为指定名字的对象还能够应用 @Qualifier 注解对其属性或参数进行形容(此注解必须配合 @Autowired 注解应用)。

@Qualifier:该注解就是对其属性或参数进行形容。

@Autowired
@Qualifier("weakCache")
private Cache cache;

@Lazy

@Lazy:该注解用于形容类,其目标是通知 spring 框架此类反对提早加载,通常会配合单例作用域应用。

@Lazy
public class GoodsController {}

@Scope

@Scope:该注解是 Spring 中用于定义 Bean 对象作用域的一个注解,其罕用的值有:

singleton prototype
整个内存有一份 Bean 实例, 此实例何时创立与类的提早加载个性配置无关,此实例创立当前,生命周期会由 spring 框架治理 每次获取都会创立新实例,此实例会在须要时创立与 lazy 个性无关,这个实例创立当前,不会交给 spring 治理,spring 能够对其初始化,但不负责销毁。
@Scope("singleton")
public class GoodsController {}

@PostConstruct

@PostConstruct:该注解用于形容 bean 对象生命周期办法中的初始化办法,此办法会在对象的构造方法之后执行(是对象创立当前的初始化)

@PostConstruct 
public void init() {System.out.println("init()");
}

@PreDestroy

@PreDestroy:该注解用于形容 Bean 对象生命周期办法中的销毁办法,此办法会在对象销毁之前执行(当作用域为 prototype 时,此办法不会执行)。

@PreDestroy
    public void close() {System.out.println("close()");
    }

@Mapper

@Mapper:该注解是由 MyBatis 框架中定义的一个形容数据层接口的的注解(所有的注解只起到一个描述性的作用), 用于通知 Spring 框架此接口的实现由 mybatis 创立,并将其实现类对象存储到 spring 容器。

@Mapper
public interface GoodsDao {}

@Param

@Param:该注解用于将括号内的参数进行援用

int deleteObjects(@Param("ids")Integer... ids);

@Controller

@Controller:该注解用于标记在一个类上,应用它标记的类就是一个 SpringMVC Controller 对象。散发处理器将会扫描应用了该注解的类的办法,并检测该办法是否应用了

@Controller
public class GoodsController {}

@RequestMapping

@RequestMapping:该注解用来解决申请地址映射的注解,可用于类或办法上。用于类上,示意类中的所有响应申请的办法都是以该地址作为父门路。

@RequestMapping("findAll")
public String findAll(Model model) {List<User> lists = goodsService.findAll();
    model.addAttribute("list", lists);
    return "goods";
    }

正文完
 0