Springboot的简单配置(IntelliJ)

1. 搭建SpringBoot

  1. 创建一个新项目,选择Spring-boot 官方模板
    在这里插入图片描述

  2. 填写项目信息
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020042513484955.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3J4bDIwMTc=,size_16,color_FFFFFF,t_70

  3. 选择插件,依赖,这里我们选择以下插件和依赖
    后面就是,选择项目地址了,这里就不再多啰嗦
    建好之后,我们的项目结构是这样的
    在这里插入图片描述
    接下来让我们调整一下,更接近真实项目中的结构

2. 项目结构调整

  1. 首先,我们将后端代码结构调整为这样
    在这里插入图片描述
    | 包名|说明 |
    |–|--|
    |annotation|放置项目自定义注解|
    |aspect|放置切面代码|
    |config|放置配置类|
    |constant|放置常量、枚举等定义|
    |consist|存放常量定义|
    |enums|存放枚举定义|
    |controller|放置控制器代码|
    |filter|放置一些过滤、拦截相关的代码|
    |mapper|放置数据访问层代码接口|
    |model|放置数据模型代码|
    |entity|放置数据库实体对象定义|
    |dto|存放数据传输对象定义|
    |vo|存放显示层对象定义|
    |service|放置具体的业务逻辑代码(接口和实现分离)|
    |serviceIntf|存放业务逻辑接口定义|
    |serviceImpl|存放业务逻辑实际实现|
    |utils|放置工具类和辅助代码|
  2. 然后将前端代码结构调整为这样
    在这里插入图片描述
名称说明
mapper存放mybatis的XML映射文件(如果是mybatis项目
static存放网页静态资源
js顾名思义
css顾名思义
img顾名思义
template存放网页模板,比如thymeleaf/freemarker模板等
header页面头部
model业务页面
default存放默认页面,欢迎页或者错误定向页面
bottom页面尾部
application.yml基本配置文件
application-dev.yml开发环境配置文件
application-test.yml测试环境配置文件
application-prod.yml生产环境配置文件

3. 编写项目配置文件

      之前一共引用了mybatis,redis以及thymeleaf模板引擎需要配置yml以及class文件再使用

  1. 多profile切换
          我们在开发应用时,通常一个项目会被部署到不同的环境中,比如:开发、测试、生产等。其中每个环 境的数据库地址、服务器端口等等配置都会不同,对于多环境的配置,大部分构建工具或是框架解决的 基本思路是一致的,通过配置多份不同环境的配置文件,再通过打包命令指定需要打包的内容之后进行 区分打包

application.yml

spring:
  profiles:
    active: dev
server:
  servlet:
    context-path: /demo

application-dev.yml

spring:
  profiles: dev
server:
  port: 8082

配置好后,启动主类就是端口就是8082,而系统路径为/demo,不过现在启动会报没有配置数据层的错误,现在让我们正式开始配置

  1. 配置mybatis

首先,我们需要先引入驱动,mysql的版本有很多,那么这次我用oracle进行演示,首先引入oracle驱动,这个驱动不在mvn库里,只能从官网下下来再install到自己的本地库中

        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.1.0</version>
        </dependency>

再在我们需要使用的yml中配置连接信息,以及文件配置
application-dev.yml

spring:
  profiles: dev
  datasource:
    url: jdbc:oracle:thin:@172.16.23.189:8086:orcl
    username: ZHGBSYS
    password: ZHGBSYS
    driverClassName: oracle.jdbc.driver.OracleDriver
mybatis:
  configuration:
    map-underscore-to-camel-case: true//驼峰命名
  mapper-locations: classpath:/mapper/*.xml
server:
  port: 8082

配置自己实体类和mapper文件
在这里插入图片描述
在这里插入图片描述
这里需要提醒一点,上面的截图是错的,mapper方法不能重载,方法ID必须唯一,不然mybatis不能创建代理对象
在这里插入图片描述
最后在启动主类中追加,对mapper的扫描
在这里插入图片描述
现在让我们测试一下
先写一个service,方便测试
在这里插入图片描述
在这里插入图片描述
启动主类添加service层扫描
在这里插入图片描述
现在在测试类中编写方法测试
在这里插入图片描述
测试结果:
在这里插入图片描述
mybatis集成完毕
2. 配置redis

  1. 配置url信息
    application.yml
spring:
  profiles:
    active: dev
server:
  servlet:
    context-path: /demo
mybatis:
  configuration:
    map-underscore-to-camel-case: true #开启驼峰命名
  mapper-locations: classpath:/mapper/*.xml
  1. 配置 redisTemplete 默认序列化对象
package com.rxl.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

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

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

@Configuration
public class RedisConfig {

    @Bean
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate<Object, Object> template = new RedisTemplate<>();
        //设置自己的序列化工具
        //Jackson2JsonRedisSerializer<Object>(Object.class)带双引号
        //new StringRedisSerializer() 不带双引号
        template.setDefaultSerializer(new StringRedisSerializer());
        //template.setKeySerializer(new StringRedisSerializer());
        //template.setValueSerializer(new Jackson2JsonRedisSerializer<Object>(Object.class));
        template.setConnectionFactory(redisConnectionFactory);

        return template;
    }
}

在这里插入图片描述

  1. 编写工具类
    添加com.alibaba.fastjson 依赖
 <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.68</version>
        </dependency>
package com.rxl.utils;

import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.alibaba.fastjson.TypeReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

import java.io.IOException;
import java.util.List;

@Component
public class RedisUtil {
    @Autowired
    private RedisTemplate<Object, Object> redisTemplate;

/**
  * @description 向Redis中存入实体类对象
  * @param Key 键值
  * @param value 实体类
  * @return void
  * @throws JsonProcessingException json转换异常
  * @author rxl
  * @date 2020/4/27 16:02
 */
    public void setInRedis(String Key, Object value) throws JsonProcessingException {
        if(value==null)
            return;
        redisTemplate.opsForValue().set(Key,JSON.toJSONString(value));
    }
/**
  * @description 从redis中取实体类对象
  * @param Key 键值
  * @param clazz 对象类型
  * @return T
  * @throws IOException 读取异常
  * @author rxl
  * @date 2020/4/27 16:04
 */
    public <T> T getPojoFromRedis(String Key,Class<T> clazz) throws IOException {
        Object value = redisTemplate.opsForValue().get(Key);
        if (value==null)
            return null;
        return JSON.parseObject(value.toString(),clazz);
    }
/**
  * @description 从redis中取实体类对象的List集合
  * @param Key 键值
  * @param clazz 对象类型
  * @return java.util.List<T>
  * @throws IOException 读取异常
  * @author rxl
  * @date 2020/4/27 16:05
 */
    public <T> List<T> getListFromRedis(String Key, Class<T> clazz) throws IOException {
        Object value = redisTemplate.opsForValue().get(Key);
        if (value==null)
            return null;
        TypeReference<List<T>> typeReference = new TypeReference<List<T>>(clazz) {};
        return JSON.parseObject(value.toString(),typeReference);
    }
}


在这里插入图片描述

  1. 编写测试方法
    在这里插入图片描述

别忘了,在启动主类中添加扫描
在这里插入图片描述
不然是不会将组件对象纳入spring管理的
测试结果:
在这里插入图片描述
在这里插入图片描述

redis集成完毕

  1. 集成thymeleaf和webJars

pom.xml

 <!--前端依赖-->
            <!--thymeleaf模板引擎-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
            <!--webjars 前端资源管理-->
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>jquery</artifactId>
            <version>3.3.1-2</version>
        </dependency>

application.yml

spring:
  profiles:
    active: dev
  thymeleaf:
    prefix: classpath:/templates/
server:
  servlet:
    context-path: /demo
mybatis:
  configuration:
    map-underscore-to-camel-case: true #开启驼峰命名
  mapper-locations: classpath:/mapper/*.xml

配置自定义变量或默认页

package com.rxl.config;

import java.util.HashMap;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.thymeleaf.spring5.view.ThymeleafViewResolver;
@Configuration
public class ThymeleafConfig implements WebMvcConfigurer {
	@Resource
    private Environment env;//取yml中的值


/**
  * @description 设置Thymeleaf全局变量
  * @param viewResolver Thymeleaf视图处理器
  * @return void
  * @author rxl
  * @date 2020/4/27 21:56
 */
    @Resource
    private void configureThymeleafStaticVars(ThymeleafViewResolver viewResolver) {
        if(viewResolver != null) {
            Map<String, Object> vars = new HashMap<String, Object>();
            vars.put("ctx", env.getProperty("server.servlet.context-path"));
            viewResolver.setStaticVariables(vars);
        }
        
    }

/**
  * @description 设置默认页
  * @param registry 视图注册器
  * @return void
  * @author rxl
  * @date 2020/4/27 21:57
 */
     @Override
     public void addViewControllers(ViewControllerRegistry registry) {
             registry.addViewController("/index").setViewName("default/index");
     }

}

在这里插入图片描述
index.html

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:th="http://www.thymeleaf.org" lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript"
	th:src="@{/webjars/jquery/3.3.1-2/jquery.min.js}"></script>
</head>
<body>
<th:block th:inline="text">
    ctx: [(${ctx})]

</th:block>

<!--/*@thymesVar id="ctx" type="java.lang.String"*/-->
<a href="#" th:if="${ctx} != null" ><span th:text="全局变量获取成功"></span></a>

</body>
<script type="text/javascript">
$(function () {
	var ctx = '[(${ctx})]';
    alert('jquery成功加载,且全局变量获取成功'+ctx);
});	
</script>
</html>

在这里插入图片描述
试试运行结果
在这里插入图片描述
运行成功,集成完毕

4. 文档整合

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.rxl.example</groupId>
    <artifactId>spring-boot_demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>spring-boot_demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!--前端依赖-->
            <!--thymeleaf模板引擎-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
            <!--webjars 前端资源管理-->
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>jquery</artifactId>
            <version>3.3.1-2</version>
        </dependency>
        <!--控制层,web-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--数据层依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.1.0</version>
        </dependency>
        <!--工具插件-->
            <!--springboot热加载插件-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
            <!--lombok管理插件-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
            <!--json处理工具-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.68</version>
        </dependency>
        <!--测试-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>

    </build>

</project>

源码下载:
链接:https://pan.baidu.com/s/1zdN7FZ44mi8gAIrg7LKEmg
提取码:rhy2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值