spring-boot之一:简单入门

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

spring-boot之一:简单入门spring-boot之一:简单入门

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

<parent>

   <groupId>org.springframework.boot</groupId>

   <artifactId>spring-boot-starter-parent</artifactId>

   <version>1.5.9.RELEASE</version>

</parent>

<dependencies>

   <dependency>

       <groupId>org.springframework.boot</groupId>

       <artifactId>spring-boot-starter-web</artifactId>

   </dependency>

</dependencies>

spring-boot之一:简单入门spring-boot之一:简单入门

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);

   }

}

spring-boot之一:简单入门

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

spring-boot之一:简单入门spring-boot之一:简单入门

5.运行Application的main方法

spring-boot之一:简单入门spring-boot之一:简单入门

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

spring-boot之一:简单入门spring-boot之一:简单入门

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

<!--测试-->

<dependency>

   <groupId>org.springframework.boot</groupId>

   <artifactId>spring-boot-starter-test</artifactId>

</dependency>

<!--redis-->

<dependency>

   <groupId>org.springframework.boot</groupId>

   <artifactId>spring-boot-starter-redis</artifactId>

</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<String, String> 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<String, String> 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.boot</groupId>

           <artifactId>spring-boot-maven-plugin</artifactId>

           <executions>

               <execution>

                   <goals>

                       <goal>repackage</goal>

                   </goals>

               </execution>

           </executions>

       </plugin>

   </plugins>

</build>

13.执行package操作

spring-boot之一:简单入门spring-boot之一:简单入门

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


这篇文章主要介绍了spring的事务传播属性REQUIRED_NESTED的原理介绍,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。传统事务中回滚点的使...
今天小编给大家分享的是一文解析spring中事务的传播机制,相信很多人都不太了解,为了让大家更加了解,所以给大家总结了以下内容,一起往下看吧。一定会有所收获...
这篇文章主要介绍了SpringCloudAlibaba和SpringCloud有什么区别,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。Spring Cloud Netfli...
本篇文章和大家了解一下SpringCloud整合XXL-Job的几个步骤。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。第一步:整合pom文件,在S...
本篇文章和大家了解一下Spring延迟初始化会遇到什么问题。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。List 坑列表 = new ArrayList(2);...
这篇文章主要介绍了怎么使用Spring提供的不同缓存注解实现缓存的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇...
本篇内容主要讲解“Spring中的@Autowired和@Resource注解怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学...
今天小编给大家分享一下SpringSecurity怎么定义多个过滤器链的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家
这篇文章主要介绍“Spring的@Conditional注解怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Spring的@Con...
这篇文章主要介绍了SpringCloudGateway的熔断限流怎么配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringCloud&nb...
今天小编给大家分享一下怎么使用Spring解决循环依赖问题的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考
这篇文章主要介绍“Spring事务及传播机制的原理及应用方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Sp...
这篇“SpringCloudAlibaba框架实例应用分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价
本篇内容主要讲解“SpringBoot中怎么使用SpringMVC”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习...
这篇文章主要介绍“SpringMVC适配器模式作用范围是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringMVC
这篇“导入SpringCloud依赖失败如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家...
这篇文章主要讲解了“SpringMVC核心DispatcherServlet处理流程是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来
今天小编给大家分享一下SpringMVCHttpMessageConverter消息转换器怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以...
这篇文章主要介绍“Spring框架实现依赖注入的原理是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Spring框架...
本篇内容介绍了“Spring单元测试控制Bean注入的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下