springboot快速配置(懒狗)

注意:配置完springboot后,记得clean package




问题:

找不到或无法加载主类 com.itheima.Application,原因: java.lang.ClassNotFoundException



环境要求:
	java8及以上
	maven3.3及以上。



springboot 整合mybatis

pom.xml文件

 <!-- 导入父项目 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.4.RELEASE</version>
    </parent>


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

        <!-- tx事务,自带数据库连接池 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

        <!-- 数据库驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!-- 第三方的mybtis场景的启动器 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.4</version>
        </dependency>

        <!-- 整合junit的  junit5的 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <!-- thymeleaf解析器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

        <!-- 开发工具 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- 分页的插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>4.1.6</version>
        </dependency>

		<!--  都可 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.10</version>
        </dependency>

    </dependencies>

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

    <!-- 打包插件 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>



创建包:
main/java

com.itheima
- application.jajva
- config
- controller
- service
- serviceImpl
- mapper
- pojo

main/resources

- mapper
	- **Mapper.xml
- application.yml

用注解 的形式写也可。

静态资源

放在static等包中



springboot的启动类

@SpringBootApplication
@MapperScan("com.itheima.mapper")
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}




使用Druid连接池对象

@Configuration
public class jdbcConfig {

    @Bean
    @ConfigurationProperties(prefix = "jdbc")
    public DataSource getDataSource(){
        return new DruidDataSource();
    }
}

application.yml

server:
  port: 8080
  servlet:
    context-path: /app


mybatis:
  mapper-locations: classpath:mapper/*.xml

# 这个看如何配置前缀了 ,一般都跟默认的数据库连接池的前缀一样。
jdbc:
  driverClassName:  com.mysql.jdbc.Driver
  url:  jdbc:mysql://127.0.0.1:3306/test
  username:  root
  password:  root

# 日志
logging:
  level:
    com.heima: debug
    org.springframework: info

使用事务starter中依赖的数据库连接池

application.yml

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url:  jdbc:mysql://localhost:3306/test
    username: root
    password: root

controller , service ,mapper 跟ssm中一样。

idea 中注入 mapper的代理对象,会报红,但是实际上运行是没有错的。

看不惯,添加mapper的@Repository注解即可。



mapper.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">

配置springboot的日志:

logging:  
	level:    
		com.itheima: debug    	 
		org.springframework: info

com.itheima 是所在的项目名称

关于分页插件的

jar的坐标如上:

		<dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>4.1.6</version>
        </dependency>

PageHelperConfig

import com.github.pagehelper.PageHelper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Properties;

@Configuration
public class PageHelperConfig {
    @Bean
    public PageHelper getPageHelper(){
        PageHelper pageHelper = new PageHelper();
        Properties properties = new Properties();
        properties.setProperty("helperDialect","mysql");
        properties.setProperty("reasonable","true");
        properties.setProperty("supportMethodsArguments","true");
        properties.setProperty("params","count=countSql");
        pageHelper.setProperties(properties);
        return pageHelper;
    }
}

简单的使用:

		PageHelper pageHelper = new PageHelper();
        pageHelper.startPage(1,5);
        List<User> userList = userService.findAll();

详细的分页:

分页插件配置


分页插件的简单使用:


在 MyBatis核心配置文件深入 章节


springboot配置拦截器 和文件上传


48章节,50 章节


Springboot 整合thymeleaf使用


43章节

使用Rest映射 get,post,delete,put


26章节


springboot中,静态资源的配置


23章节


springboot2 单元测试


71章节





springboot 整合redis


pom.xml

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


application.yml

spring:
	redis:
		host: localhost
		port: 6379


这是默认的配置


springboot整合junit4的用法:

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
import java.util.Set;

@RunWith(SpringRunner.class)
@SpringBootTest
public class RedisTest {

	@Autowired
	private RedisTemplate redisTemplate; // 导入后,自动装配的。

	@Test
	public void test(){
	//string字符串
	//redisTemplate.opsForValue().set("str", "heima");
	redisTemplate.boundValueOps("str").set("heima");
	System.out.println("str = " + redisTemplate.opsForValue().get("str"));

	//hash散列
	redisTemplate.boundHashOps("h_key").put("name", "黑马");
	redisTemplate.boundHashOps("h_key").put("age", 13);
	
	/获取所有域对应的值
	Set set = redisTemplate.boundHashOps("h_key").keys();
	System.out.println("hash散列所有的域:" + set);
	List list = redisTemplate.boundHashOps("h_key").values();
	System.out.println("hash散列所有的域值:" + list);

	//list列表
	redisTemplate.boundListOps("l_key").leftPush("c");
	redisTemplate.boundListOps("l_key").leftPush("b");
	redisTemplate.boundListOps("l_key").leftPush("a");
	list = redisTemplate.boundListOps("l_key").range(0, -1);
	System.out.println("列表的值:" + list);

	//set集合
	redisTemplate.boundSetOps("set_key").add("a", "b", "c");
	set = redisTemplate.boundSetOps("set_key").members();
	System.out.println("集合的元素:" + set);

	//sorted set有序集合
	redisTemplate.boundZSetOps("z_key").add("a", 30);
	redisTemplate.boundZSetOps("z_key").add("b", 20);
	redisTemplate.boundZSetOps("z_key").add("c", 10);
	set = redisTemplate.boundZSetOps("z_key").range(0, -1);
	System.out.println("有序集合的元素:" + set);

	}
}
	


redis忘记的话:

redis的笔记


springboot 整合通用mapper

目标:配置通用Mapper组件到Spring Boot项目中并使用Mapper接口

分析

通用Mapper:可以实现自动拼接sql语句;所有的mapper都不需要编写任何方法也就是不用编写sql语句。可以提高开发效率。

  1. 添加启动器依赖;
  2. 改造UserMapper继承Mapper;
  3. 修改启动引导类Application中的Mapper扫描注解;
  4. 修改User实体类添加jpa注解;
  5. 改造UserService实现业务功能;

小结

在启动引导类上面的mapper扫描注解 一定要修改为 通用mapper的扫描注解


6. 编写项目的顺序

主要的步骤:

.创建项目,添加pom文件
创建对应的实体类,指定@Table注解
创建对应的mapper类继承Mapper<T>接口,注入到spring容器中
在 Application.java中添加@MapperScanner("....") 注解
  1. 创建数据库表
  2. 创建项目,添加pom文件
  3. 创建好包,编写springboot 的入口类
  4. 编写application.yml的配置文件
  5. 创建对应的实体类,指定@Table注解
  6. 创建对应的mapper类继承Mapper接口,注入到spring容器中
  7. 在 Application.java中添加@MapperScanner("…") 注解
  8. 编写service层
  9. 编写controller层
  10. 访问


0.创建项目,目录结构

在这里插入图片描述

1. 构建数据库中的表,和对应的实体类

在这里插入图片描述
在这里插入图片描述

User

import javax.persistence.Id;
import javax.persistence.Table;

@Table(name = "user")			// 注意这里!!!
public class User {

    @Id
    private int id;

    private String name;

    private String gender;

    private int age;

    private String address;

    private String qq;

    private String email;
2. 配置pom.xml文件,创建项目启动类,创建配置文件
<parent>
        <artifactId>spring-boot-starter-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <version>2.1.5.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- 版本必须指定 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
            <scope>runtime</scope>
        </dependency>
        <!-- 事务 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!-- 通用mapper -->
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.1.5</version>
        </dependency>
    </dependencies>

	<!-- jdk版本 -->
    <properties>
        <java.version>1.8</java.version>
    </properties>

启动类

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import tk.mybatis.spring.annotation.MapperScan;


@SpringBootApplication
@MapperScan(basePackages = "com.itheima.mapper")   //basePackages可写可不写!!!
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}

application.yml

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test
    username: root
    password: root

# 就配置了一个数据库
3. 创建mapper类,service类

mapper


import com.itheima.domain.User;
import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.Mapper;

@Repository		// 这个注解必须要哈!!!
public interface UserMapper extends Mapper<User> {
}

service

import com.itheima.domain.User;
import com.itheima.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    public List<User> findALL(){
        return userMapper.selectAll();
    }
}
4. 创建Controller

import com.itheima.domain.User;
import com.itheima.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;

@Controller
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("/hello/{id}")		// resful风格
    @ResponseBody
    public String findAll(@PathVariable int id){
        System.out.println(id);
        List<User> userList = userService.findALL();
        System.out.println(userList);
        return ""+ userList;
    }
    
}

5. 启动项目

访问http://localhost:8080/hello/1

在这里插入图片描述
在这里插入图片描述



springboot 整合mybatis 和通用mapper

前提:需要导入对应的jar包

  1. pojo中一定要使用:@Table() 注解 表明是哪一个数据表
  2. 在主方法类中,配置扫描路径
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import tk.mybatis.spring.annotation.MapperScan;

@SpringBootApplication
@MapperScan( basePackages = {"com.itheima.mapper","com.itheima.mappers"})     // 通用mapper扫描的包
@org.mybatis.spring.annotation.MapperScan("com.itheima.mappers")	//mybatis扫描的包
public class MainApplication {
    public static void main(String[] args) {
        SpringApplication.run(MainApplication.class,args);
    }
}
  1. mapper接口中继承
@Repository
public interface UserMapper extends tk.mybatis.mapper.common.Mapper<User> {
    
    @Select("select * from user where id = #{id}")
    public User findOneById(int id);	// 自定义的方法,也可以使用继承过来的方法。

}



springboot 使用mybatis的逆向工程


Mybatis逆向工程


springboot 配置shiro


shiro快速配置


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值