千家信息网

spring-boot之一:简单入门

发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,1.在IDE中创建一个web项目2.在pom.xml文件中增加maven依赖org.springframework.bootspring-boot-starter-parent1.5.9.RELEAS
千家信息网最后更新 2025年01月25日spring-boot之一:简单入门

1.在IDE中创建一个web项目

2.在pom.xml文件中增加maven依赖

<parent>

<groupId>org.springframework.bootgroupId>

<artifactId>spring-boot-starter-parentartifactId>

<version>1.5.9.RELEASEversion>

parent>

<dependencies>

<dependency>

<groupId>org.springframework.bootgroupId>

<artifactId>spring-boot-starter-webartifactId>

dependency>

dependencies>

3.创建程序入口类Application.java

package com.xuejia.ad;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

/**

* @author kehaojian

* @date 2017-12-28 8:33

* @since 1.0.0

*/

@SpringBootApplication

public class Application {

public static void main(String[] args) {

SpringApplication.run(Application.class, args);

}

}

4.创建一个controller类

package com.xuejia.ad.controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

/**

* @author kehaojian

* @date 2017-12-28 8:35

* @since 1.0.0

*/

@RestController

public class StartDemoController {

@RequestMapping("/")

String home(){

return "hello";

}

}


5.配置application.yml

server:

port: 8888

tomcat:

uri-encoding: utf-8

spring:

redis:

host: localhost

port: 6379

pool:

max-active: 8

min-idle: 0

max-idle: 8

max-wait: -1

5.运行Application的main方法

6.在浏览器中输入http://localhost:8888/

7.在pom.xml增加spring-boot-starter-redis以及spring-boot-starter-test依赖包

<dependency>

<groupId>org.springframework.bootgroupId>

<artifactId>spring-boot-starter-testartifactId>

dependency>

<dependency>

<groupId>org.springframework.bootgroupId>

<artifactId>spring-boot-starter-redisartifactId>

dependency>

8.创建redis配置类RedisConfig

package com.xuejia.ad.config;

import com.fasterxml.jackson.annotation.JsonAutoDetect;

import com.fasterxml.jackson.annotation.PropertyAccessor;

import com.fasterxml.jackson.databind.ObjectMapper;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.data.redis.connection.RedisConnectionFactory;

import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;

import org.springframework.data.redis.core.RedisTemplate;

import org.springframework.data.redis.core.StringRedisTemplate;

import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;

import redis.clients.jedis.JedisPoolConfig;

/**

* @author kehaojian

* @date 2017-12-28 9:08

* @since 1.0.0

*/

@Configuration

@ConfigurationProperties(prefix="spring.redis")

public class RedisConfig {

private static Logger logger = LoggerFactory.getLogger(RedisConfig.class);

/*@Bean

public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {

StringRedisTemplate template = new StringRedisTemplate(redisConnectionFactory);

Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);

ObjectMapper objectMapper = new ObjectMapper();

objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);

objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);

jackson2JsonRedisSerializer.setObjectMapper(objectMapper);

template.setValueSerializer(jackson2JsonRedisSerializer);

template.afterPropertiesSet();

return template;

}

*/

@Bean

public JedisPoolConfig getRedisConfig(){

JedisPoolConfig config = new JedisPoolConfig();

return config;

}

@Bean

public JedisConnectionFactory getConnectionFactory(){

JedisConnectionFactory factory = new JedisConnectionFactory();

JedisPoolConfig config = getRedisConfig();

factory.setPoolConfig(config);

logger.info("JedisConnectionFactory bean init success.");

return factory;

}

@Bean

public RedisTemplate getRedisTemplate(){

RedisTemplate template = new StringRedisTemplate(getConnectionFactory());

return template;

}

}

9.创建redis简单工具类

package com.xuejia.ad.common;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.data.redis.core.RedisTemplate;

import org.springframework.stereotype.Repository;

import java.util.concurrent.TimeUnit;

/**

* @author kehaojian

* @date 2017-12-28 9:04

* @since 1.0.0

*/

@Repository

public class RedisUtil {

@Autowired

private RedisTemplate redisTemplate;

public void add(String key, String value, Long time){

redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);

}

public String get(String key) {

return redisTemplate.opsForValue().get(key);

}

public void delete(String key) {

redisTemplate.opsForValue().getOperations().delete(key);

}

}

10.在test目录下创建一个测试类RedisTest

import com.xuejia.ad.common.RedisUtil;

import com.xuejia.ad.config.RedisConfig;

import org.junit.Before;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.test.context.ContextConfiguration;

import org.springframework.test.context.junit4.SpringJUnit4Cla***unner;

/**

* @author kehaojian

* @date 2017-12-28 9:17

* @since 1.0.0

*/

@RunWith(SpringJUnit4Cla***unner.class)

@ContextConfiguration(classes = {RedisConfig.class, RedisUtil.class})

public class RedisTest {

@Autowired

private RedisUtil redisUtil;

@Before

public void testbefore() {

redisUtil.add("kehaojian", "helloworld", 100L);

}

@Test

public void testRedis() throws InterruptedException {

int total = 20;

for (int i = 0; i < 20; i++){

System.out.println(redisUtil.get("kehaojian"));

Thread.sleep(5000);

}

}

}

11.运行测试类,结果如下

18:57:26.975 [main] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - Opening RedisConnection

18:57:26.975 [main] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - Closing Redis Connection

helloworld

18:57:31.976 [main] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - Opening RedisConnection

18:57:31.976 [main] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - Closing Redis Connection

helloworld

18:57:36.976 [main] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - Opening RedisConnection

18:57:36.976 [main] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - Closing Redis Connection

helloworld

18:57:41.976 [main] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - Opening RedisConnection

18:57:41.976 [main] DEBUG org.springframework.data.redis.core.RedisConnectionUtils - Closing Redis Connection

12.打包,在pom.xml增加打包插件配置

<build>

<plugins>

<plugin>

<groupId>org.springframework.bootgroupId>

<artifactId>spring-boot-maven-pluginartifactId>

<executions>

<execution>

<goals>

<goal>repackagegoal>

goals>

execution>

executions>

plugin>

plugins>

build>

13.执行package操作


0