在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  網(wǎng)絡安全/ Spring的注入和SpringMVC的注入有什么不同?

Spring的注入和SpringMVC的注入有什么不同?

各位前輩,我現(xiàn)在在初學redis,用了RedisTemplate。配置如下:

@Bean
public static  RedisConnectionFactory redisConnectionFactory(){
    JedisConnectionFactory factory = new JedisConnectionFactory();
    factory.setPort(6379);
    factory.setHostName("127.0.0.1");
    factory.afterPropertiesSet();
    return factory;
}
@Bean
public static RedisTemplate redisTemplate(RedisConnectionFactory factory){
    RedisTemplate<String, Object> template = new RedisTemplate();
    template.setConnectionFactory(factory);
    template.afterPropertiesSet();
    return template;
}

在新的項目springboot環(huán)境中的啟動類里面有main方法。由于main是靜態(tài)方法,我只能這樣注入redisTemplate:

private static RedisTemplate template;
@Autowired
public TestapiApplication(RedisTemplate redisTemplate) {
    this.template = redisTemplate;
}
public static void main(String[] args) {
    SpringApplication.run(TestapiApplication.class, args);
    //....
}

redisTemplate可以運行成功。
我就在自己的Web項目中寫了一個配置類RedisConfid.java以及一個工具類RedisUtil.java。其中工具類的靜態(tài)方法test方法就是上述main方法的內(nèi)容,在某個controller里面直接使用工具類的靜態(tài)方法,運行的時候報redisTemplate空指針的錯誤。
我想問問各位前輩,一樣的環(huán)境為什么Web下會出現(xiàn)空指針?

回答
編輯回答
凹凸曼

說幾點:

  1. Bean注解表示該方法返回一個Bean交給Spring容器來管理,如果你的配置類RedisConfid.java里面包含這兩個Bean注解的方法,需要加上@Configuration注解。
  2. "其中工具類的靜態(tài)方法test方法就是上述main方法的內(nèi)容",你確定你把SpringApplication.run(TestapiApplication.class, args);這玩意放到工具類的test方法里了?如果是這樣,我不明白你調(diào)用這個run方法有什么意義。你應該去了解一下SpringBoot的啟動方法也就是這個run方法干了什么事.
  3. 我理解的工具類應該是封裝了一下對redis的操作,大概是這樣子:
@Component
pubic class RedisUtil{

@Autowired
private RedisTemplate redisTemplate;

public void test(){
    redisTemplate.xxxx
}

}
2017年7月1日 02:24