• SpringBoot整合MyBatis和Redis


    Spring框架配置方式

    XML配置方

    优点:便于阅读、与业务代码解耦

    缺点:解析XML影响性能、开发工作量大,编译器不可校验配置正确性

    注解配置方式

    优点:开发便捷、编译期可校验配置正确性

    缺点:注解与代码绑定,配置分散,不利于统一处理

    Java配置方式

    优点:编译期可校验配置正确性、配置简单,方便维护和管理、可以使用IDE的代码提示功能

    缺点:不利于新人学习和理解框架的原理

    实现Java配置方式

    实现Java配置的方式,主要通过两个注解:@Configuration和@Bean

    @Configuration

    标注于类上,表示该类为配置类,具有与Spring IoC配置文件相同的功能

    @Bean

    标注于配置类的方法上,用于向该配置类注入一个Bean组件

    方法返回值为组件的对象类型

    演示案例

    1. 实体类
    2. public class Dog {
    3. private String name;//宠物狗狗的姓名
    4. private int age;//宠物狗狗的年龄
    5. //此处省略getter and setter 方法
    6. }
    7. public class User {
    8. private String userName;
    9. private Dog dog;
    10. //此处省略getter and setter 和 toString方法
    11. }
    12. 配置类
    13. /**
    14. * @Configuration 指明当前类是一个配置类,就是来代替之前的Spring配置文件
    15. * 在配置文件中用标签添加组件
    16. */
    17. @Configuration
    18. public class JavaConfig {
    19. //将方法的返回值添加到容器中;容器中这个组件默认的id就是方法名
    20. //@Bean
    21. //@Bean注解提供了name属性,通过name属性可以指定Bean组件的id值
    22. @Bean(name = "user13")
    23. public User user12(){
    24. User user=new User();
    25. user.setUserName("小明");
    26. Dog dog=new Dog();
    27. dog.setName("欢欢");
    28. dog.setAge(5);
    29. user.setDog(dog);
    30. return user;
    31. }
    32. }
    33. 测试类
    34. @RunWith(SpringRunner.class)
    35. @SpringBootTest
    36. class Ch041javapeizhiApplicationTests {
    37. @Test
    38. void contextLoads() {
    39. /*java配置的方式生成的Spring容器。测试时,首先通过AnnotationConfigApplicationContext
    40. 获取SpringIoc容器的上下文信息。再在上下文信息中获取对应的Bean组件*/
    41. ApplicationContext act=new AnnotationConfigApplicationContext(JavaConfig.class);
    42. User user=(User)act.getBean("user13");
    43. System.out.println(user.toString());
    44. }
    45. @Resource
    46. private User user;
    47. @Test
    48. void contextLoads2() {
    49. System.out.println(user.toString());
    50. }
    51. }

    Java配置方式扩展

    Bean组件的作用域:@Scope注解可以标注在方法上与@Bean注解搭配使用

    @Scope("singleton") :默认,单例模式,容器只创建一次实例

    @Scope("prototype") :每次获取时创建新的实例

    initMethod属性

    作用:被标注的方法将于容器启动前执行

    使用方法:@Bean(initMethod="Bean中的初始化方法名")

    destroyMethod属性

    作用:被标注的方法将于容器销毁前执行

    使用方法:@Bean(destroyMethod="Bean中的销毁方法名")

    SpringBoot整合MyBatis

    SpringBoot整合MyBatis的方式有两种,根据引入依赖的名称:分为mybatis-spring的方式 和 mybatis-spring-boot-starter的方式

    方式1:mybatis-spring方式

    创建SpringBoot项目,搭建项目结构如图:

    1. 实体类----------------------------------------
    2. public class User {
    3. private Integer id;
    4. private String userName;
    5. private String userPassword;
    6. //此处省略getter and setter
    7. }
    8. mapper类----------------------------------------
    9. public interface UserMapper {
    10. //根据id查询对应的用户信息
    11. User getUserById(Long id);
    12. }
    13. mapper映射文件----------------------------------------
    14. <mapper namespace="com.msds.mapper.UserMapper">
    15. <!--根据id查询对应的用户信息-->
    16. <select id="getUserById" resultType="user" parameterType="long">
    17. select * from `smbms_user`
  • 相关阅读:
    【0115】libpq连接PostgreSQL数据库
    jeecgboot — docker 搭建 jeecgboot 项目 +本地VUE2 前端
    VME-7807RC-414001 350-93007807-414001 VMIVME-017807-411001 VMIVME-017807-414001
    [附源码]计算机毕业设计JAVA保险客户管理系统
    c++ 字符串匹配算法sunday算法
    如何多号定时发朋友圈?
    STM32WB55开发(5)----调整射频功率
    G1、CMS垃圾回收期专题
    【电源专题】什么是AC/DC转换器
    CVE-2023-36845:Juniper Networks Junos OS EX远程命令执行漏洞
  • 原文地址:https://blog.csdn.net/weixin_47541976/article/details/126738509