Spring中的18个注解,你会几个?( 三 )


@Repository
用于标注数据访问组件 , 即DAO组件
@Component
泛指组件 , 当组件不好归类的时候 , 我们可以使用这个注解进行标注
@Scope
用来配置 spring bean 的作用域 , 它标识 bean 的作用域 。
默认值是单例

  • singleton:单例模式,全局有且仅有一个实例
  • prototype:原型模式,每次获取Bean的时候会有一个新的实例
  • request:request表示该针对每一次HTTP请求都会产生一个新的bean , 同时该bean仅在当前HTTP request内有效
  • session:session作用域表示该针对每一次HTTP请求都会产生一个新的bean , 同时该bean仅在当前HTTP session内有效
  • global session:只在portal应用中有用 , 给每一个 global http session 新建一个Bean实例 。
@SessionAttributes
默认情况下Spring MVC将模型中的数据存储到request域中 。当一个请求结束后 , 数据就失效了 。如果要跨页面使用 。那么需要使用到session 。而@SessionAttributes注解就可以使得模型中的数据存储一份到session域中
参数:
  1. names:这是一个字符串数组 。里面应写需要存储到session中数据的名称 。
  2. types:根据指定参数的类型 , 将模型中对应类型的参数存储到session中
  3. value:和names是一样的 。
1@Controller 2@SessionAttributes(value=https://www.isolves.com/it/cxkf/yy/JAVA/2019-08-07/{"names"},types={Integer.class}) 3public class ScopeService { 4 @RequestMapping("/testSession") 5 public String test(Map map){ 6 map.put("names", Arrays.asList("a","b","c")); 7 map.put("age", 12); 8 return "hello"; 9 }10}@Required
适用于bean属性setter方法 , 并表示受影响的bean属性必须在XML配置文件在配置时进行填充 。否则 , 容器会抛出一个BeanInitializationException异常 。
@Qualifier
当你创建多个具有相同类型的 bean 时 , 并且想要用一个属性只为它们其中的一个进行装配 , 在这种情况下 , 你可以使用 @Qualifier 注释和 @Autowired 注释通过指定哪一个真正的 bean 将会被装配来消除混乱 。
 

【Spring中的18个注解,你会几个?】


推荐阅读