SpringBoot——項目搭建、整合Mybatis、整合redis(集群)


一、項目搭建

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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.x5456</groupId>
    <artifactId>springBootDemo</artifactId>
    <version>1.0-SNAPSHOT</version>


    <!--從這開始拷貝-->

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.0.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
        <!--mybatis整合SpringBoot的jar包。從這下面的暫時不拷-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>
        <!-- 加入redis起步依賴 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-redis</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.28</version>
        </dependency>

    </dependencies>

    <!--到這結束-->
    
</project>

程序的主方法mySpringBootDemo.java

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * 掃描所有的類
 * 並將當前類對象交給Spring管理
 */
@SpringBootApplication
public class mySpringBootDemo {

    public static void main(String[] args) {

        // 項目入口
        SpringApplication.run(mySpringBootDemo.class,args);

    }

}

Controller(返回的都是json格式數據)

package cn.x5456.controller;


import cn.x5456.pojo.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * rest風格的controller(返回json數據)
 * 相當於@Controller+@ResponseBody注解
 */
@RestController
public class helloController {

    /**
     * 返回json格式數據
     * @return
     */
    @RequestMapping("hello")
    public String hello(){
        return "hello,world!";
    }

    /**
     * 返回pojo
     */
    @RequestMapping("pojo")
    public User pojo(){

        User u = new User();

        u.setName("張三");
        u.setAge(19);

        return u;
    }

    /**
     * 返回集合
     */
    @RequestMapping("list")
    public List<User> list(){

        ArrayList<User> uList = new ArrayList<>();

        User u1 = new User();
        u1.setName("張三");
        u1.setAge(19);


        User u2 = new User();
        u2.setName("李四");
        u2.setAge(20);

        uList.add(u1);
        uList.add(u2);

        return uList;
    }

    /**
     * 返回map
     */
    @RequestMapping("map")
    public Map<String,Object> map(){

        HashMap<String, Object> map = new HashMap<>();

        map.put("a",1);
        map.put("b",2);

        return map;

    }

}

二、SpringBoot與Mybatis整合

1)導入相關jar包

<!--mybatis整合SpringBoot的jar包-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>

2)創建文件夾,並書寫配置文件

sqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>		
	<!--雖然是空的,但必須有-->
</configuration>

UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="cn.x5456.mapper.UserMapper">	<!-- 此處的命名空間必須能點到響應的mapper -->
	<select id="findAll" resultType="User">
		select * from user
	</select>
</mapper>

application.properties

#spring集成Mybatis環境

# 1.設置別名
mybatis.type-aliases-package=cn.x5456.domain
# 2.加載Mybatis配置文件
mybatis.mapper-locations = classpath:mapper/*Mapper.xml
mybatis.config-location = classpath:mapper/config/sqlMapConfig.xml
# 3.配置數據庫連接
spring.datasource.driver-class-name= com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/mybatis01?useUnicode=true&characterEncoding=utf-8
spring.datasource.username = root
spring.datasource.password = 5456

3) 代碼實現

UserMapper.java(接口,與上面usermapper.xml配置文件對應)

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import cn.x5456.domain.User;
@Mapper
public interface UserMapper {
	
	public List<User> findAll();

}

UserServiceImpl.java

@Service
public class UserServiceImpl implements UserService {
	
	@Autowired
	private UserMapper userMapper;
	
	/*@Autowired
	private JedisCluster jedisCluster;*/
	
	
	public List<User> findAllUser() {
		List<User> list = userMapper.findAll();
		return list;
	}
}

UserController.java

@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("allUser")
    public List<User> allUser(){

        List<User> allUser = userService.findAllUser();

        return allUser;
    }
}

三、SpringBoot整合redis單機版

1)在application.properties中添加如下代碼

#Spring與redis整合

spring.redis.host=127.0.0.1
spring.redis.port=6379

2)在主程序上添加一個注解

/**
 * 掃描所有的類
 * 並將當前類對象交給Spring管理
 */
@EnableCaching  // 開啟緩存
@SpringBootApplication
public class mySpringBootDemo {

    public static void main(String[] args) {

        // 項目入口
        SpringApplication.run(mySpringBootDemo.class,args);

    }

}

3)在Service層中需要緩存的方法上添加Cacheable注解

/**
 * 測試緩存,必須要有一個value,作為redis中緩存的鍵
 * @return
 */
@Cacheable(value = "findAll")
public List<User> findAllUser() {
	List<User> list = userMapper.findAll();
	return list;
}

四、SpringBoot整合redis集群

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM