SpringBoo整合
整合
mybatis-plus
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
MybatisPlusAutoConfiguration
配置类,MybatisPlusProperties
配置项绑定。SqlSessionFactory
自动配置好,底层是容器中默认的数据源。mapperLocations
自动配置好的,有默认值classpath*:/mapper/**/*.xml
,这表示任意包的类路径下的所有mapper文件夹下任意路径下的所有xml都是sql映射文件。 建议以后sql映射文件放在 mapper下。容器中也自动配置好了
SqlSessionTemplate
。@Mapper
标注的接口也会被自动扫描,建议直接@MapperScan("com.lun.boot.mapper")
批量扫描。MyBatisPlus优点之一:只需要我们的Mapper继承MyBatisPlus的
BaseMapper
就可以拥有CRUD能力,减轻开发工作。
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.lun.hellomybatisplus.model.User;
public interface UserMapper extends BaseMapper<User> {
}
redis
导入依赖
<!--redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
不需要写配置,默认已经写好,且导入了jedis
使用redis
@Autowired
StringRedisTemplate redisTemplate;
@Autowired
RedisConnectionFactory redisConnectionFactory;
@Test
public void test()
{
ValueOperations<String, String> operations = redisTemplate.opsForValue();
operations.set("k1","v1");
String hello = operations.get("hello");
System.out.println(hello);
System.out.println(redisConnectionFactory.getClass());
}
事务支持
能成功写入数据,但会报错,原因貌似为底层代码逻辑问题
// 开启事务支持,在同一个 Connection 中执行命令
stringRedisTemplate.setEnableTransactionSupport(true);
stringRedisTemplate.multi();
stringRedisTemplate.opsForValue().set("name", "qinyi");
stringRedisTemplate.opsForValue().set("gender", "male");
stringRedisTemplate.opsForValue().set("age", "19");
System.out.println(stringRedisTemplate.exec()); // [true, true, true]
2.推荐使用,不会报错
SessionCallback<Object> callback = new SessionCallback<Object>() {
@Override
public Object execute(RedisOperations operations) {
operations.multi();
operations.opsForValue().set("name", "qinyi");
operations.opsForValue().set("gender", "male");
operations.opsForValue().set("age", "19");
return operations.exec();
}
};
redisTemplate.execute(callback);
邮件发送(QQ邮箱)
引入pom.xml的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
1234
配置qq邮箱相关信息(application.yml)
spring:
mail:
# host: smtp.exmail.qq.com #企业邮箱
host: smtp.qq.com #个人邮箱
port: 465
username: ******@qq.com #邮箱地址,对应host的主机
password: ****** #此处为邮箱**授权码**,qq独有
properties:
mail:
smtp:
ssl:
enable: true
发送java代码
普通文本发送
@Autowired
private JavaMailSender javaMailSender;
public void sendMail(String address){
SimpleMailMessage message = new SimpleMailMessage();
message.setSubject("test");
message.setFrom("******@qq.com");
message.setTo(address);
message.setText("hello world");
javaMailSender.send(message);
}
非纯文本格式发送
@Autowired
private JavaMailSender javaMailSender;
public void sendMail(String address){
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
//邮件主题
helper.setSubject("test");
//附件
helper.addAttachment("file.png",new File("filePath"));
//邮件内容,也可以放html的格式
helper.setText("邮件内容");
//邮件发送时间
helper.setSentDate(时间);
//发件人
helper.setFrom("******@qq.com");
//收件人
helper.setTo(address);
javaMailSender.send(message);
}
发送邮件时线程阻塞
在发送邮件方法上添加@Aysnc注解
Web Socket
Last updated