JSR 250 - JiyangM/spring GitHub Wiki

spring支持使用JSR-250注解。

  • @PostConstruct 声明周期方法

此注释标记必须在对该类执行依赖关系注入之后执行的方法。

  • @PreDestroy 声明周期方法

此注释标记在容器移除实例时必须执行的方法。

@Configuration
public class JuHeConfig {

    private String openId = "JHe9324e8e22650ee998d26e6be333435d";

    private String appKeyCellFee = "5a20b9be4fd53c6dee1a263aac12964d";

    private String appKeyCellFlow = "2ff2f28636bb6815b477ef799a803e45";

    private String appKeyGasCard = "eaf89ffe83d23504c792761f4f9c16ac";

    @PostConstruct
    public void init() {
        config();
    }

    private void config() {
        JuHeApiConfig.setOpenId(openId);
        JuHeApiConfig.setAppKeyCellFee(appKeyCellFee);
        JuHeApiConfig.setAppKeyCellFlow(appKeyCellFlow);
        JuHeApiConfig.setGasCardAppKey(appKeyGasCard);
    }
}
  • @Resource

此注释标记应用程序需要的 WebServiceContext 资源。

@Resource 和 @Autowired 注解的不不同。

  • @Resource默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入;如果指定课name就只能根据名称注入。
  • @Autowired默认是按照类型装配注入的,如果想按照名称来转配注入,则需要结合@Qualifier一起使用;
    @Bean
    @Primary
    public StringRedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        return new StringRedisTemplate(redisConnectionFactory);
    }

    @Bean(name = "cacheRedis")
    public StringRedisTemplate cacheRedisTemplate(@Qualifier("cacheConnectionFatory") RedisConnectionFactory redisConnectionFactory) {
        return new StringRedisTemplate(redisConnectionFactory);
    }
@Service
@Slf4j
public class TransferDebtService {
    @Autowired
    @Qualifier("cacheRedis")
    private StringRedisTemplate cacheRedis;

    @Autowired
    private StringRedisTemplate redisTemplate;
}