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
一般这时候我们需要自己设置视图解析器,在application.yml中如下设置即可:
spring.mvc.view.prefix = /WEB-INF/views/
spring.mvc.view.suffix = .jsp