范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Spring常用注解

  Spring注解相关Spring注解相关一、配置类组件1.@Configuration2.@ComponentScan3.@Scope4.@Lazy5.@Conditional6.@Import二、赋值(自动装配)类组件1.@Component2.@Service3.@Controller4.@Repository5.@Value6.@Autowired7.@PropertySource8.@Qualifier9.@Primary10.@Resource三、织入组件1.ApplicationContextAware2.BeanDefinitionRegistryPostProcessor四、切面组件1.@EnableTransactionManagement2.@Transactional一、配置类组件1.@Configuration
  把一个类作为一个容器,它的某个头上如果注册了@Bean,就会作为这个Spring容器中的Bean。 @Configuration public class MyConfig{ } 2.@ComponentScan
  在配置类上添加@ComponentScan注解,该注解会默认扫描该类所在包下的所有配置类(添加过spring注解的类、@Controller、@Service、@Repository、@Component),相当于之前的context:component-scan. 方式一: @ComponentScan(value = "com.xinyu.major.chongci.spring01.componscan"         , includeFilters = {@ComponentScan.Filter(type = FilterType.CUSTOM, value = {MyTypeFilter.class})}         , useDefaultFilters = false ) public class MyConfig {  }  public class MyTypeFilter implements TypeFilter {     /**      * @Author: xinyu F      * @Date: 2022/3/19 21:43      * @Describe: metadataReader 获取当前正在操作的类的信息      * metadataReaderFactory 获取上下文中所有的信息      */     @Override     public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory) throws IOException {         //获取扫描到的注解信息         AnnotationMetadata annotationMetadata = metadataReader.getAnnotationMetadata();         //获取扫描到的类的信息         ClassMetadata classMetadata = metadataReader.getClassMetadata();         //获取当前类的所有资源         Resource resource = metadataReader.getResource();          //获取类名         String className = classMetadata.getClassName();          System.out.println("=======================" + className + "=======================");         if (className.contains("Person")) {             return true;         }          return false;     } }  方式二: @ComponentScan("com.xinyu.major.chongci.spring01.componscan") public class MyConfig {  } 3.@Scope
  用于指定作用域 作用在类和方法上
  value值:
  prototype:原型、多例
  singleton:单例(默认)
  request:主要应用于web模块,同一次请求只创建一个实例
  session:主要应用于web模块,同一个session只创建一个实例 @Scope("request") public void getName(){  }   @Scope("request") public class PersonA {      } 4.@Lazy
  延时加载,被调用的时候才会加载,只针对单例bean起作用(默认是非延时加载) @Lazy public void getName(){  } 5.@Conditional
  Spring4开始提供,它的作用是按照一定的条件进行判断,满足条件给容器注册Bean @Conditional(WinCondition.class) @Bean public void loadName() {     System.out.println("win加载"); }  @Conditional(LinuxCondition.class) @Bean public void loadName2() {     System.out.println("Linux加载"); }  public class WinCondition implements Condition {     @Override     public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {         ConfigurableListableBeanFactory beanFactory = context.getBeanFactory();         Environment environment = context.getEnvironment();         String property = environment.getProperty("os.name");         System.out.println(property);         if (property.contains("Windows")) {             return true;         }          return false;     } } public class LinuxCondition implements Condition {     @Override     public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {         ConfigurableListableBeanFactory beanFactory = context.getBeanFactory();         Environment environment = context.getEnvironment();         String property = environment.getProperty("os.name");         System.out.println(property);         if (property.contains("Linux")) {             return true;         }          return false;     } }  6.@Import
  导入外部资源 @Import(value = {PersonA.class, MyImportSelector.class, MyImportBeanDefinitionRegistrar.class}) public class MyConfig {      }  public class MyImportSelector implements ImportSelector {     @Override     public String[] selectImports(AnnotationMetadata importingClassMetadata) {         return new String[]{"com.xinyu.major.chongci.spring01.test.Member",                 "com.xinyu.major.chongci.spring01.test.Shansa"};     } }  public class MyImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {     @Override     public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {         BeanDefinition beanDefinition = new RootBeanDefinition(User.class);         registry.registerBeanDefinition("user", beanDefinition);     } } 二、赋值(自动装配)类组件1.@Component
  泛指组件,当组件不好归类时可以用这个注解进行标注 2.@Service
  用于标注业务层组件 3.@Controller
  用于标注控制层组件 4.@Repository
  用于标注数据访问层组件,Dao 5.@Value
  普通数据类型赋值 6.@Autowired
  默认按类型匹配,如果我们想匹配名称可以结合@Qualifier注解一起使用 7.@PropertySource
  读取配置文件赋值 @PropertySource(value= {"application.yml"}) public class PropertySourceMain {      } 8.@Qualifier
  如存在多个实例配合使用,取别名 @Qualifier("aaa") @Bean public void getBean(){      }  @Autowired @Qualifier("bbb") private String name;  9.@Primary
  自动装配出现多个Bean候选者时,被注解为@Primary的Bean为首选者,否则将抛出异常。 10.@Resource
  默认按名称装配,当找不到与名称匹配的bean才会按类型装配。 三、织入组件1.ApplicationContextAware
  可以通过这个上下文环境对象得到Spring容器中的Bean 2.BeanDefinitionRegistryPostProcessor
  BeanDefinitionRegistryPostProcessor实现了BeanFactoryPostProcessor接口,是Spring框架的BeanDefinitionRegistry的后处理器,用来注册额外的BeanDefinition 四、切面组件1.@EnableTransactionManagement
  添加对事务管理的支持 2.@Transactional
  配置声明式事务信息

人类的起源?人类的起源,人类只是地球上很多物种之一。只有不断增加生命体的进化才能让人类这个品种活得更久远。人类一直在探索自身的基因进化秘密,这就是长生的秘密。从古至今都在研究这个秘密。长生不是谈智能研发以下文章来源于智造苑,作者小智导读实现智能研发是一个复杂而漫长的过程。企业除了要建立完善的研发体系以外,还应通过信息化技术实现产品全生命周期中数据流的自动化,以用户为中心,通过智能推荐一款高效精准的离线ip地址库ipregion近期,全网关于显示ip属地的功能讨论比较热烈,听说让一些营销号博主现出了原型。作为一群被称为码农的技术人员,大大小小的产品经理老板们肯定又安排任务下来,头发又要少几根了,今天我们就小巧便携的键鼠怎么配?只需200元就能轻松搞定现在笔记本成为我日常办公最常用的工具,有时间外出办公时,需要随身携带笔记本。键鼠作为电脑外设的标配,有时候因工作需要,携带笔记本时也要把键鼠带上,小巧轻便的键鼠套装对我来说是再好不网页中如何实现点击按钮将文本复制到剪贴板?构建网站时经常会用到将文本复制到剪贴板的需求,下面是常用做法,兼容旧版浏览器。创建元素,将其值设置为要复制到剪贴板上的字符串。将元素附加到当前HTML文档并使用CSS将其隐藏以防止粤省事APP上线可长按图标一键亮粤康码中新网广州5月13日电(记者程景伟)在广东省人民政府新闻办公室13日举行的新闻发布会上,作为广东省数字政府改革进入2。0建设阶段的一个标志性成果,粤省事APP正式发布上线。广东省在全球最大重离子对撞机将上线据美国趣味科学网站5月10日报道,全球功率最大的重离子对撞机本周上线。报道说,研究人员5月初宣布,全球功率最大的重离子对撞机终于完工。它将产生新的奇异原子,并揭示恒星和超新星如何产广东公安在粤省事App上线300项服务事项!七成全程网办5月13日,广东省政府新闻办粤省事App上线新闻发布会召开。会上,省公安厅二级巡视员张彬照介绍,近期,广东公安将粤省事小程序上线的公安政务服务事项全量迁移至粤省事App,总上线事项Linux命令使用grep和egrep查找文件内容Linux中可以使用grep或者egrep命令用于在文件内查找指定的字符串。egrep执行效果与grepE相似,使用的语法及参数可参照grep指令,与grep的不同点在于解读字符串微信悄悄上线新功能微信又有新功能啦再次冲上热搜最近,有小伙伴发现微信升级全新版本后增加了手机温度监控等新功能这个手机温度监控功能到底如何使用呢?打开微信后点击我设置找到下方帮助与反馈点击进入进入帮助秦创原(国际)路演中心与多家公司签约助推科技成果转化近日,秦创原(国际)路演中心与陕西省创业投资协会开源证券签署战略合作协议,与深圳证券信息有限公司(科融通VNext)成功签署合作框架协议,助推陕西科技成果转化。秦创原(国际)路演中
京东养18万员工不如拼多多养1千员工京东这几天优化副总裁的消息到处都是,来自某些小道消息显示已经优化了很多副总裁,可见京东人员的冗余多厉害。用刘强东的话来说,京东有18万的员工,但是从早期京东的发家史来看,现在18万京东养18万员工不如拼多多养1千员工京东这几天优化副总裁的消息到处都是,来自某些小道消息显示已经优化了很多副总裁,可见京东人员的冗余多厉害。用刘强东的话来说,京东有18万的员工,但是从早期京东的发家史来看,现在18万到底是谁举报了张文宏?这几天看朋友圈,很多挺张的微博出来,感觉张文宏要被D到了。于是就好奇了下,到底是谁举报了张文宏?然后我就把我发现的分享给大家看看。这个微博最早发表在新浪微博一个叫大盛说的ID,具体淘宝特价版铺天盖地的PR,或是借微信炒作淘宝就是淘宝,阿里就是阿里,上线一个App就能炒作的满天飞,小到小媒体,大到央视,到处都是淘宝特价版的PR,别的App推广的时候,都是花钱推广,有时候砸了很多钱,辛辛苦苦还推广不了为什么现在朋友圈社交电商这么火?说起社交电商我想大家都不会陌生,就是大家朋友圈常见的微商。而且有点愈演愈烈之势,动不动以前认识的某个老板开始卖货了,动不动以前认识的某个投资人开始把你拉到某个xxx内购群里了以前刷专业图形显卡和普通游戏显卡有什么区别RADEONPRO系列专业图形显卡买笔记本的时候,大家有没有发现有的笔记本配备的图形工作站专业显卡,比如惠普的战99配的就是NVIDIAQuadroP620,它的型号名称跟我们平时Intel的CPU不会选?Intel的CPU价格从低到高推荐Intel作为CPU领域的第一巨头,旗下的产品不计其数,从几百到几千甚至上万的应有尽有,很多电脑小白不知道怎么选,亿说电脑张一亿帮大家筛选出几款性价比较高的,价格从几百到几千的一一非常纠结,全新iPhone13和二手iPhone12ProMax应该如何选择?群友想入手一台iPhone,在iPhone13256GB和二手iPhone12ProMax256GB之间纠结,不知道应该买哪一台。在群友的建议下,最终入手了iPhone12ProM翘首期盼一个月,苹果官网买的iPhone13ProMax终于到货一大早接到快递电话,九月底在官网订购的iPhone13ProMax终于到了!足足等了一个月!很多人都想不到,虽然iPhone13系列已经发布超过一个月时间,但iPhone13ProiPhone13mini太失败,降价一千多都没人接盘iPhone13mini是一款叫好不叫座的产品,大家都觉得它好,但是在购买的时候,都会跳过iPhone13mini,直接选择iPhone13。网友上个月买了一台iPhone13miAselsan获土耳其军事合同,为安全部队打造军用AR眼镜(ChinaIT。com讯)10月21日消息,土耳其国防电子公司Aselsan与旗下子公司BITES,以及AselsanSivas宣布获得军事合同,为土耳其安全部队开发和制造AR眼