SpringBoot的整合

lombok的应用


1. lombok的作用:

使用lombok的注解可以简化pojo类
很简单了,个人觉得没必要简化,但是他确实弄得更简单了

2. lombok是什么:

是一个插件,提供了注解@Data,@Getter等。
可以简化构造方法,getter/setter方法的编写。

3. 使用步骤:

  1. 在IDEA中安装lombok插件
  2. 添加对应的依赖
  3. 改造pojo类

4. 实现:

  1. 安装插件
    File -> settings -> Plugins->搜索
    在这里插入图片描述
    第一个就是,安装重启

  2. 添加依赖

<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
</dependency>
  1. 修改POJO
package com.jerry.helloworld.pojo;

import lombok.Data;
import lombok.extern.slf4j.Slf4j;

import java.util.Date;

// 在编译阶段会根据注解自动生成对应的方法,Data注解包含set,get,hashcode,equals,toString等方法
// 是的,只剩下属性了,然后在类上添加@Data即可
@Data
@Slf4j
public class User {

    private Long id;

    private String username;

    private String password;

    private String name;

    private Integer age;

    private Integer sex;

    private Date birthday;

    private Date created;

    private Date update;

    private String note;
}

5. lombok的注解:

  1. @Data :自动提供getter和setter、hashCode、equals、toString等方法
  2. @Getter:自动提供getter方法
  3. @Setter:自动提供setter方法
  4. @Slf4j:自动在bean中提供log变量,其实用的是slf4j的日志功能。

SpringBoot整合SpringMVC静态资源


在这里插入图片描述
看源码得知,可以放在这四个目录下:

  1. classpath:/META-INF/resources/
  2. classpath:/resources/
  3. classpath:/static/
  4. classpath:/public

一般放在static下面。
在这里插入图片描述


SpringBoot整合SpringMVC拦截器


1. 实现步骤:

  1. 编写拦截器
  2. 编写配置器的实现,并添加组件

2. 代码实现:

  1. 编写拦截器
@Slf4j
public class MyInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        log.debug("这是MyInterceptor的prehHandle方法");
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        log.debug("这是MyInterceptor的postHandle方法");
    }
    
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        log.debug("这是MyInterceptor的afterCompletion方法");
    }
}
  1. 编写配置器的实现,并添加组件
@Configuration
public class MvcConfig implements WebMvcConfigurer {

    //注册拦截器
    @Bean
    public MyInterceptor myInterceptor(){
        return new MyInterceptor();
    }

    //添加拦截器到spring mvc拦截器链
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(myInterceptor()).addPathPatterns("/*");
    }
}

SpringBoot整合jdbc、事务和连接池


1. 步骤:

  1. 添加启动器和依赖(整合jdbc)
  2. 使用@Transactional注解添加事务即可

2. 代码:

  1. 添加启动器和依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--什么数据库都可以-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
  1. 注解直接放在类或方法上即可

3. 整合连接池:

在引入jdbc启动器时,已经引入了一个连接池hikari
只需要指定参数即可。

# application.yml
spring:
  datasource:
  driver-class-name: com.mysql.jdbc.Driver
  url: jdbc:mysql://localhost:3306/springboot_test
  username: root
  password: root

这样就不用自己注入druid或者c3p0的属性了


SpringBoot整合MyBatis


SpringBoot没有提供MyBatis的启动器,但是MyBatis自己实现了。

1. 步骤:

  1. 导入依赖
  2. 配置application.yml
  3. 配置mapper扫描

2. 实现:

  1. 导入依赖:
<!--mybatis -->
<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>2.0.1</version>
</dependency>
  1. 配置
# mybatis配置
mybatis:
  # 实体类别名包路径
  type-aliases-package: com.jerry.pojo
  # 映射文件路径
  # mapper-locations: classpath:mappers/*.xml
  configuration:
    # 控制台输出执行sql
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  1. mapper接口的扫描只能定义接口上才能识别
@Mapper
public interface UserMapper {
}
  1. 或者在启动类上添加扫描包注解
@SpringBootApplication
@MapperScan("com.jerry.mapper")
public class Application {
	public static void main(String[] args) {
	// 启动代码
	SpringApplication.run(Application.class, args);
	}
}

3. 通用Mapper:

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

步骤:

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

实现:

  1. 依赖
<!-- 通用mapper -->
<dependency>
	<groupId>tk.mybatis</groupId>
	<artifactId>mapper-spring-boot-starter</artifactId>
	<version>2.1.5</version>
</dependency>
  1. 编写UserMapper
// 没了
public interface UserMapper extends Mapper<User> {
}
  1. 修改扫描注解:
    @MapperScan换成通用mapper自带的
import tk.mybatis.spring.annotation.MapperScan;
// 代码没变,包变了
  1. 在POJO上加JPA注解,确定查询哪个表时映射
@Data
@Table(name = "tb_user")
public class User{
	// id
	@Id
	//开启主键自动回填
	@KeySql(useGeneratedKeys = true)
	private Long id;
	// 用户名
	private String userName;
	// 密码
	private String password;
	// 姓名
	private String name;
	// 年龄
	private Integer age;
	// 性别,1男性,2女性
	private Integer sex;
	// 出生日期
	private Date birthday;
	// 创建时间
	private Date created;
	// 更新时间
	private Date updated;
	// 备注
	private String note;
}
  1. UserService中调用Mapper,具体有啥看提示吧

SpringBoot整合Junit


1. 整合步骤:

  1. 添加启动器依赖
  2. 使用

2. 代码:

  1. 启动器依赖
<!--创建的项目自带-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
  1. 在测试类上添加@SpringBootTest注解,用@Tese测试

SpringBoot整合Redis


1. 步骤:

  1. 添加启动器依赖
  2. 配置redis参数
  3. 使用

2. 代码实现:

  1. 添加依赖:
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
  1. 配置参数
# application.yml
spring:
  redis:
    host: localhost
    port: 6379

奇怪了, 不用密码的吗, 忘得比裤兜还干净

  1. 使用
@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", "heima");
        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列表中的所有元素:" + list);

        // set 集合
        redisTemplate.boundSetOps("s_key").add("a", "b", "c");
        set = redisTemplate.boundSetOps("s_key").members();
        System.out.println(" set集合中的所有元素:" + 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(" zset有序集合中的所有元素:" + set);
    }
}


SpringBoot项目部署


  1. 添加依赖(项目自带创建了)
<build>
	<plugins>
		<!-- 打jar包时如果不配置该插件,打出来的jar包没有清单文件 -->
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
	</plugins>
</build>
  1. 按package打包在这里插入图片描述
  2. 找到包的位置,命令行输入
    java -jar 包名即可
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值