发表于: 2018-10-13 23:11:07

1 529


今日完成:

今日上午复习了一下AOP,好久没看了快忘了

面向切面编程我的理解就是不改变业务代码,业务模块可以调用的一个类,有点类似工具类,将公用的抽出来整合成一个类,在需要的时候调用就好了。

之前学的spring配置都是xml形式较多,但是基于注解形式的更方便,经过些许SpringBoot的学习,xml这种方式应该尽量少用。

具体的学到的AOP就不写了。


今日看了一下spring实战的缓存,感觉学到了不少东西

SDR提供了模板来完成redis数据库的存取功能,在使用模板之前首先要创建连接工厂

SDR提供了四种连接工厂,就拿JedisConnectionFactory举例

以前都是在xml配置文件中配置的,下面使用配置类

@Bean

   public RedisConnectionFactory redisConnectionFactory() {

   return new JedisConnectionFactory();

}

在配置类中可添加端口号,密码等属性

RDS中提供了两个模板:

RedisTemplate

SpringRedisTemplate

有了工厂就可以构建RedisTemplate

@Bean

public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory cf) {

    RedisTemplate<String,Student> redis = new RedisTemplate<String,Student>();

    redis.setConnectionFactory(cf);

    return redis;

}

注意:SpringRedisTemplate与RedisTemplate不同,SpringRedisTemplate有一个接受RedisConnectionFactory的构造器,不需要调用setConnectionFactory


序列化器:

如果想把返回的value序列化为JSON格式,可以在配置类中添加

redis.setValueSerializer(new Jackson2JsonRedisSerializer<Student>(Student.class))


按照网上的例子写配置类

@Configuration
@PropertySource("classpath:config/redis.properties")
public class RedisConfig {

@Autowired
   private Environment env;
   @Bean
   public RedisConnectionFactory redisConnectionFactory() {
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
       JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
       jedisConnectionFactory.setHostName(env.getProperty("redis.host").trim());
       jedisConnectionFactory.setPort(Integer.parseInt(env.getProperty("redis.port").trim()));
       jedisConnectionFactory.setPassword(env.getProperty("redis.password").trim());
       jedisConnectionFactory.setDatabase(Integer.parseInt(env.getProperty("redis.database").trim()));
       jedisConnectionFactory.setUsePool(true);
       jedisConnectionFactory.setPoolConfig(jedisPoolConfig);
       return jedisConnectionFactory;
   }

@Bean
   public RedisTemplate<String, String> redisTemplate() {
RedisTemplate<String, String> redisTemplate = new StringRedisTemplate();
       redisTemplate.setConnectionFactory(redisConnectionFactory());
       redisTemplate.afterPropertiesSet();
       return redisTemplate;
   }

}

然后测试,总是出现错误

一直没解决。

晚上就看了配置类,

@Configuration,指明当前类是一个配置类,就是来替代之前的Spring配置文件

@bean就相当于xml文件的<bean></bean>

要在JavaConfig中声明bean,就要编写一个方法,这个方法会创建所需类型的实例,bean的ID就是方法名。也可以用nam自定义名。


在这个bean中可以DI其它的bean,形参可以注入带@bean的方法,只是这样不容易理解,简化:

public School school(Student student){

    return new School(student);

}

或是setter注入

public School school(Student student){

    School school = new School(student);

    school.setStudent(student); 

    return school;

}


明日计划:

心急吃不了热豆腐,先把之前学过的学明白再说吧,SpringBoot反正是建立在Spring基础上的,今天看了这个书发现这上面有很多任务中用到的而自己没完全掌握的,先把吃透再说。


遇到问题:

问题就是配置RedisTemplate的错误没解决,以后解决了它。


今日收获:

通过今天看的书发现,注解是真的很方便,以后试试配置bean时尽量使用注解,少用xml。



返回列表 返回列表
评论

    分享到