SpringBoot___项目开发整合与配置(二)

1. 与Redis整合
 SpringBoot中提供了RedisTempplate的操作,这边不做太多介绍,我们来看下如何整合Redis:

@Configuration
@PropertySource(value="classpath:redis.properties")
public class RedisSpringConfig{

    @Value("${redis.maxTotal}")
    private Integer redisMaxTOtal;

    @Value("${redis.nodel.host}")
    private String redisNodelHost;

    @Value("${redis.nodel.port}")
    private Integer redisNodelPort;

    private JedisPoolConfig jedisPoolConfig(){
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(redisMaxTotal);
        return jedisPoolConfig;
    }

    @Bean
    public ShardedJedisPool shardedJedisPool(){
        List<JedisShardInfo> jedisShardInfos = new ArrayList<JedisShardInfo>();
        jedisShardInfos.add(new JedisShardInfo(redisNodelHost,redisNodelPort));
        return new ShardedJedisPool(jedisPoolConfig(), jedisShardInfos);
    }
}

 我们可以通过在springboot的启动类中添加扫描注解@ComponentScan来手动指定要扫描的包。

2. 与HttpClient整合
 SpringBoot可以通过下列方式来定义数据, 例如:

@Configuration
@PropertySource(value="classpath:httpclient.properties")
public class HttpclientSpringConfig{

    @Value("${http.maxTotal}")
    private Integer httpMaxTotal;

    @Value("${http.defaultMaxPerRoute}")
    private Integer httpDefaultMaxPerRoute;

    @Value("${http.connectTimeout}")
    private Integer httpConnectTimeout;

    @Value("${http.connectionRequestTimeout}")
    private Integer httpConnectionRequestTimeout;

    @Value("${http.socketTimeout}")
    private Integer httpSocketTimeout;

    @Value("${http.staleConnectionCheckEnabled}")
    private Boolean httpStaleConnectionCheckEnabled;

    @Autowired
    private PoolingHttpClientConnectionManager manager;

    @Bean
    public PoolingHttpClientConnectionManager poolingHttpClientConnectionManager() {
        PoolingHttpClientConnectionManager poolingHttpClientConnectionManager = 
                                new PoolingHttpClientConnectionManager();
        // 最大连接数
        poolingHttpClientConnectionManager.setMaxTotal(httpMaxTotal);
        // 每个主机的最大并发数
        poolingHttpClientConnectionManager.
                    setDefaultMaxPerRoute(httpDefaultMaxPerRoute);
        return poolingHttpClientConnectionManager;
    }

    // 定期关闭无效连接
    @Bean
    public IdleConnectionEvictor idleConnectionEvictor() {
        return new IdleConnectionEvictor(manager);
    }

    // 定义Httpclient对
    @Bean
    @Scope("prototype")
    public CloseableHttpClient closeableHttpClient() {
        return HttpClients.custom().setConnectionManager(this.manager).build();
    }

    // 请求配置
    @Bean
    public RequestConfig requestConfig() {
        return RequestConfig.custom()
        .setConnectTimeout(httpConnectTimeout)// 创建连接的最长时间
        .setConnectionRequestTimeout(httpConnectionRequestTimeout)
        // 从连接池中获取到连接的最长时间
        .setSocketTimeout(httpSocketTimeout) // 数据传输的最长时间
        .setStaleConnectionCheckEnabled(httpStaleConnectionCheckEnabled) 
        // 提交请求前测试连接是否可用
        .build();
    }
}

3.与RabbitMQ整合

  • 导入依赖
     首先我们要导入amqp依赖,如下:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
  • 然后配置rabbitMQ

 我们可以在application.properties中设置RabbitMQ的连接信息。如下:

spring.rabbitmq.host = 127.0.0.1
spring.rabbitmq.port = 5972
spring.rabbitmq.password = XXX
spring.rabbitmq.username = XXX
#这是路径
spring.rabbitmq.virtual-host = /XXX 
  • 配置Rabbit配置类:

@Configuration
public class RabbitMQSpringConfig{
    @Autowired
    private ConnectionFactory connectionFactory;

    //管理
    @Bean
    public RabbitAdmin rabbitAdmin{
        return new RabbitAdmin(connectionFactory);
    }

    //声明队列
    @Bean
    public Queue LoginQuery(){
        //默认就是自动声明的
        return new Queue("LOGIN_QUEUE", true);
    }
}
  • 设置监听

 设置监听就是在类上配置注解@Component,然后在execute方法上加上注解@RabbitListener(queues = "LOGIN_QUEUE"),其中queues执行的你自己的队列。

4.配置SpringMVC

springmvc配置
 一般这时候我们需要自己设置视图解析器,在application.yml中如下设置即可:

spring.mvc.view.prefix = /WEB-INF/views/
spring.mvc.view.suffix = .jsp

猜你喜欢

转载自blog.csdn.net/pseudonym_/article/details/80683107
今日推荐