• 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集群

  • 相关阅读:
    SQL反模式学习笔记16 使用随机数排序
    SQL反模式学习笔记21 SQL注入
    SQL反模式学习笔记22 伪键洁癖,整理数据
    SQL反模式学习笔记18 减少SQL查询数据,避免使用一条SQL语句解决复杂问题
    SQL反模式学习笔记19 使用*号,隐式的列
    SQL反模式学习笔记17 全文搜索
    SQL反模式学习笔记20 明文密码
    (可发送)亿级流量APP,是怎么做前端性能测试自动化的?
    测试窝 高薪测试必备技能和 20+ 项目实战精华,好书免费领(限前 1000 名)!
    同样是断言,为何 Hamcrest 如此优秀?测试灵魂三问,该如何回答?
  • 原文地址:https://www.cnblogs.com/x54256/p/9156676.html
Copyright © 2020-2023  润新知