2019.6.28 Spring注解

6.28

  • Spring提供了获取操作系统的信息:

    ApplicationContext applicationContext = new AnnotationConfigApplicationContext(Myconfig.class);
            ConfigurableEnvironment contextEnvironment = (ConfigurableEnvironment) applicationContext.getEnvironment();
    /*对应jvm参数中的os.name*/
            String ospropertyname = contextEnvironment.getProperty("os.name");
            System.out.println(ospropertyname);
  • Conditional根据条件判断是否将bean注册到容器中
    1. 需要将注解bean的方法加上@Conditional
    2. @Conditiona接受一个Condition类型的CLass数组,
    3. 需要写一个条件类来实现Conditional接口里面的matches
    4. matches的方法形参是ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata
      public class Os implements Condition {
          @Override
          public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {
              /*获取ioc使用的beanfactory*/
              ConfigurableListableBeanFactory beanFactory = conditionContext.getBeanFactory();
              /*获取bean定义的注册类*/
              BeanDefinitionRegistry registry = conditionContext.getRegistry();
              Environment environment = conditionContext.getEnvironment();
              String ospropertyname = environment.getProperty("os.name");
      
              /*判断容器中是否含有bean*/
              //boolean person = registry.containsBeanDefinition("person");
              if(ospropertyname.contains("window")){
                  return true;
              }
              return false;
          }
      }

原文地址:https://www.cnblogs.com/mwss/p/11105110.html

时间: 2024-08-05 03:01:40

2019.6.28 Spring注解的相关文章

Spring注解@Component、@Repository、@Service、@Controller区别

Spring注解@Component.@Repository.@Service.@Controller区别 Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository.@Service 和 @Controller.在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层.业务层和控制层(Web 层)相对应.虽然目前这 3 个注释和 @Comp

spring注解 annotation

spring.xml新加入 xmlns:context="http://www.springframework.org/schema/context" http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd spring.xml中 1 <beans xmlns="http://www.springf

spring注解配置quartz应用

项目中会经常用到定时器,因此,其quartz的使用,我们必须要掌握.下面就以例子来讲解如何在spring中整合quartz, 使用注解配置的方式来实现定时执行任务. 一.引入jar包 项目中需引入quartz的jar包,由于整合到spring中,肯定也引入了spring的相关jar包. 例子中引用的是quartz-2.1.1版本,使用maven管理项目,pom文件需引入quartz依赖 二.spring配置文件中配置 (applicationContext.xml) 1)      xmlns和

Spring注解@Component、@Repository、@Service、@Controller的相关知识

Spring注解@Component.@Repository.@Service.@Controller区别 spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository.@Service 和 @Controller.在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层.业务层和控制层(Web 层)相对应.虽然目前这 3 个注释和 @Comp

spring注解式参数校验

很痛苦遇到大量的参数进行校验,在业务中还要抛出异常或者返回异常时的校验信息,在代码中相当冗长,今天我们就来学习spring注解式参数校验. 其实就是:hibernate的validator. 开始啦...... 1.controller的bean加上@Validated就像这样 1 @ApiOperation(value = "用户登录接口", notes = "用户登录") 2 @PostMapping("/userLogin") 3 publ

Spring注解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析

URL:http://www.ulewo.com/user/10001/blog/273 我们在使用spring的时候经常会用到这些注解,那么这些注解到底有什么区别呢.我们先来看代码 同样分三层来看: Action 层: package com.ulewo.ioc; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @Co

【Quartz】基于Spring注解方式配置Quartz

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka         在上讲[Quartz]Spring3.2.9+Quqrtz2.2.1实现定时实例中,我们使用了XML的方式来配置Quartz定时任务,虽然比用API的方式简便多了,但是Spring还支持基本注解的方式来配置.这样做不仅更加简单,而且代码量也更加少了. 新建一个Java工程,导入要用到的包,Spring3.2.Quartz2.2.1.aopalliance-1.0.jar.co

spring注解详解

1. 使用Spring注解来注入属性 1.1. 使用注解以前我们是怎样注入属性的 类的实现: Java代码 public class UserManagerImpl implements UserManager { private UserDao userDao; public void setUserDao(UserDao userDao) { this.userDao = userDao; } ... } public class UserManagerImpl implements Use

使用spring注解,注入sessionFactory类

简述 目前使用spring hibernate作为项目的框架,并且使用注解方式进行对象装载.在装载Dao对象的时候常常需要注入sessionFactory对象,通常的做法是Dao继承至HibernateDaoSuppor,t然后在Dao中添加setSuperSessionFactory 方法进行注入的,这几天网上又看到一种更好的方法,所以这里就把这两种方法都记录一下. 方法一(继承HibernateDaoSupport) 这个是比较常用的方法,看到很多文章中都使用这种方式. 前置条件: sess