天道酬勤,学无止境

学习笔记--MyBatis04:使用注解开发

MyBatis04:使用注解开发

使用注解开发

面向接口编程

  • 大家之前都学过面向对象编程,也学习过接口,但在真正的开发中,很多时候我们会选择面向接口编程
  • 根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的实现 , 大家都遵守共同的标准 , 使得开发变得容易 , 规范性更好
  • 在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的,对系统设计人员来讲就不那么重要了;
  • 而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作内容。面向接口编程就是指按照这种思想来编程。

关于接口的理解

  • 接口从更深层次的理解,应是定义(规范,约束)与实现(名实分离的原则)的分离。

  • 接口的本身反映了系统设计人员对系统的抽象理解。

  • 接口应有两类:

    • 第一类是对一个个体的抽象,它可对应为一个抽象体(abstract class);
    • 第二类是对一个个体某一方面的抽象,即形成一个抽象面(interface);
  • 一个体有可能有多个抽象面。抽象体与抽象面是有区别的。

三个面向区别

  • 面向对象是指,我们考虑问题时,以对象为单位,考虑它的属性及方法 .

  • 面向过程是指,我们考虑问题时,以一个具体的流程(事务过程)为单位,考虑它的实现 .

  • 接口设计与非接口设计是针对复用技术而言的,与面向对象(过程)不是一个问题.更多的体现就是对系统整体的架构

利用注解开发

  • mybatis最初配置信息是基于 XML ,映射语句(SQL)也是定义在 XML 中的。而到MyBatis 3提供了新的基于注解的配置。不幸的是,Java 注解的的表达力和灵活性十分有限。最强大的 MyBatis 映射并不能用注解来构建

  • sql 类型主要分成 :

    • @select ()
    • @update ()
    • @Insert ()
    • @delete ()

**注意:**利用注解开发就不需要mapper.xml映射文件了 .

1、我们在我们的接口中添加注解

//查询全部用户
@Select("select id,name,pwd password from user")
public List<User> getAllUser();

2、在mybatis的核心配置文件中注入

<!--使用class绑定接口-->
<mappers>
   <mapper class="com.kuang.mapper.UserMapper"/>
</mappers>

3、我们去进行测试

@Test
public void testGetAllUser() {
   SqlSession session = MybatisUtils.getSession();
   //本质上利用了jvm的动态代理机制
   UserMapper mapper = session.getMapper(UserMapper.class);

   List<User> users = mapper.getAllUser();
   for (User user : users){
       System.out.println(user);
  }

   session.close();
}

4、利用Debug查看本质

img

5、本质上利用了jvm的动态代理机制

img

6、Mybatis详细的执行流程

img

注解增删改

改造MybatisUtils工具类的getSession( ) 方法,重载实现。

  //获取SqlSession连接
  public static SqlSession getSession(){
      return getSession(true); //事务自动提交
  }
 
  public static SqlSession getSession(boolean flag){
      return sqlSessionFactory.openSession(flag);
  }

【注意】确保实体类和数据库字段对应

查询:

1、编写接口方法注解

//根据id查询用户
@Select("select * from user where id = #{id}")
User selectUserById(@Param("id") int id);

2、测试

@Test
public void testSelectUserById() {
   SqlSession session = MybatisUtils.getSession();
   UserMapper mapper = session.getMapper(UserMapper.class);

   User user = mapper.selectUserById(1);
   System.out.println(user);

   session.close();
}

新增:

1、编写接口方法注解

//添加一个用户
@Insert("insert into user (id,name,pwd) values (#{id},#{name},#{pwd})")
int addUser(User user);

2、测试

@Test
public void testAddUser() {
   SqlSession session = MybatisUtils.getSession();
   UserMapper mapper = session.getMapper(UserMapper.class);

   User user = new User(6, "秦疆", "123456");
   mapper.addUser(user);

   session.close();
}

修改:

1、编写接口方法注解

//修改一个用户
@Update("update user set name=#{name},pwd=#{pwd} where id = #{id}")
int updateUser(User user);

2、测试

@Test
public void testUpdateUser() {
   SqlSession session = MybatisUtils.getSession();
   UserMapper mapper = session.getMapper(UserMapper.class);

   User user = new User(6, "秦疆", "zxcvbn");
   mapper.updateUser(user);

   session.close();
}

删除:

1、编写接口方法注解

//根据id删除用
@Delete("delete from user where id = #{id}")
int deleteUser(@Param("id")int id);

2、测试

@Test
public void testDeleteUser() {
   SqlSession session = MybatisUtils.getSession();
   UserMapper mapper = session.getMapper(UserMapper.class);

   mapper.deleteUser(6);
   
   session.close();
}

【注意点:增删改一定记得对事务的处理】

关于@Param

@Param注解用于给方法参数起一个名字。以下是总结的使用原则:

  • 在方法只接受一个参数的情况下,可以不使用@Param。
  • 在方法接受多个参数的情况下,建议一定要使用@Param注解给参数命名。
  • 如果参数是 JavaBean , 则不能使用@Param。
  • 不使用@Param注解时,参数只能有一个,并且是Javabean。

#与$的区别

  • #{} 的作用主要是替换预编译语句(PrepareStatement)中的占位符? 【推荐使用】

    INSERT INTO user (name) VALUES (#{name});
    INSERT INTO user (name) VALUES (?);
    
  • ${} 的作用是直接进行字符串替换

    INSERT INTO user (name) VALUES ('${name}');
    INSERT INTO user (name) VALUES ('kuangshen');
    

使用注解和配置文件协同开发,才是MyBatis的最佳实践!

使用注解开发可以提高我们的开发效率,可以合理使用哦!

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Java学习笔记目录索引 (持续更新中)
    博主的其他笔记汇总 : 👉 学习数据结构与算法,学习笔记会持续更新: 《恋上数据结构与算法》学习Java虚拟机,学习笔记会持续更新: 《Java虚拟机》学习Java并发编程,学习笔记会持续更新: 《Java并发编程》学习Java设计模式,学习笔记会持续更新: 《Java设计模式》学习网络协议,学习笔记会持续更新: 《网络协议》 Java学习路线目录索引 👍 一、Java基础二、 MySQL数据库三、JDBC四、JavaWeb五、MyBatis & JPA六、Spring七、SpringMVC八、SpringBoot九、SpringCloud十、Redis十一、SpringSecurity、Shiro十二、消息中间件 RabbitMQ十三、ElasticSearch (转载系列)十四、开发工具的使用 附录 : 👉 Github最牛逼的Java知识汇总 : JavaGuide号称最强的Java知识总结 : ThinkWon 一、Java基础 跳转到目录 UML 一 类图关系 (泛化、实现、依赖、关联、聚合、组合)枚举类 — 概述、常用方法、自定义枚举类、Enum创建枚举类抽象类(abstract class)、接口(interface)String类 — 概述、String的性质、内存解析、常用API线程 — 创建方式、常用方法、线程安全问题、通信Java集合 — Collection
  • 狂神说 mybatis笔记代码(同步B站视频)完整版
    最近在b站上找java框架视频,发现——狂神说 狂神说的SSM框架视频均在b站免费观看,以下为资源及笔记 ————————————————————————————— mybatis B站视频链接 b站视频链接,点击跳转 ————————————————————————————— mybatis 官方文档 官方文档,点击跳转 ————————————————————————————— mybatis笔记完整版 狂神说MyBatis01:第一个程序 狂神说MyBatis02:CRUD操作及配置解析 狂神说MyBatis03:ResultMap及分页 狂神说MyBatis04:使用注解开发 狂神说MyBatis05:一对多和多对一处理 狂神说MyBatis06:动态SQL 狂神说MyBatis07:缓存 ————————————————————————————— Java学习路线 java全栈学习路线 ————————————————————————————— spring5笔记完整版 狂神说 spring5笔记完整版(同步b站视频) ————————————————————————————— 狂神说springMVC笔记完整版(含SSM框架整合) 狂神 springMVC笔记完整版(同步B站) ————————————————————————————— 感谢狂神!!! 来源:https
  • Java全套课程修炼之Java小白入门篇
    温馨提示: 1、本文并非Java的唯一学习路线,程序羊仅仅是怀着分享的动力来汇总,仅供参考。如有争议,请及时联系程序羊。 2、看完此文之后,能不能全都学会,程序羊不敢保证,但是,唯一可以知道的一点就是,您至少应该知道按什么学习路线去学习Java了,并且可以学到一些,或许你还没有了解到的知识。 3、如果您觉得本文对您有用,可以收藏好,并给程序羊点个赞,以示鼓励,喜欢的朋友也可以点个关注喔,程序羊会不定时给您更新更多的干货。 阶段1 Java语言基础 1-1-Java基础语法 第1节 java运行环境 1_1_1_01_Java语言发展史 1_1_1_02_计算机进制转换 1_1_1_03_计算机存储单元 1_1_1_04_命令提示符_基本介绍 1_1_1_05_命令提示符_常用命令 1_1_1_06_Java语言的跨平台性 1_1_1_07_JDK、JRE与JVM 1_1_1_08_JDK的下载与安装 1_1_1_09_环境变量的配置 第2节 HelloWorld案例 1_1_2_10_HelloWorld程序的代码编 1_1_2_11_HelloWorld程序的编译 1_1_2_12_HelloWorld的常见问题 1_1_2_13_程序注释与HelloWorld 第3节 关键字&标识符 1_1_3_14_关键字的概念与特征 1_1_3_15_标识符的概念与规则 第4节 常量&变量
  • Java学习路线目录索引(持续更新中)
    Java学习路线目录索引(持续更新中) Java学习路线目录索引 后续会将下面源码及资料发布到github, 欢迎star 1、MyBatis源码及资料: https://github.com/coderZYGui/MyBatis-Study 2、Sping源码及资料: https://github.com/coderZYGui/Spring-Study 3、SpringMVC源码及资料: https://github.com/coderZYGui/springmvc-study 文章目录 Java学习路线目录索引(持续更新中)第一部分: Java基础第二部分: java数据库第三部分: JavaWeb第四部分: SSM等主流框架SSM-------MybatisSSM-------SpringSSM-------SpringMVC 第五部分: SpringBoot第六部分: SpringCloud第七部分: Redis第八部分: Shiro, Spring Security第九部分: 消息中间件第十部分: 工具的使用 第一部分: Java基础 跳转到目录 枚举类 — 概述、常用方法、自定义枚举类、Enum创建枚举类抽象类(abstract class)、接口(interface)String类 — 概述、String的性质、内存解析、常用API线程 — 创建方式、常用方法
  • Mybatis学习笔记 - 01
    Mybatis系列文章 Mybatis学习笔记 - 01Mybatis学习笔记 - 02Mybatis学习笔记 - 03Mybatis学习笔记 - 04 文章目录 1. Mybatis 的概述2. Mybatis 的环境搭建3. Mybatis 的入门案例4. 自定义 Mybatis 框架 1. Mybatis 的概述 Mybatis 是一个使用java编写的持久层框架。它封装了 JDBC ,使开发者只需要关注 sql 语句,而无需关注注册驱动、创建连接、创建 Statement 等繁杂的过程。 采用了 ORM 思想 实现了结果集的封装 ORM(Object Relational Mapping)对象关系映射。简单地说,就是把数据库表和实体类及实体类的属性对应起来,让我们可以通过操作实体类来操作数据库表。 2. Mybatis 的环境搭建 创建 Maven 项目,导入相关依赖( 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
  • Mybatis基于注解的使用&注解开发与配置文件开发的区别
    这是博主自己的学习笔记,如果有看不懂的,就说明你前面学的不扎实请进入博客往前翻翻博主前面的笔记,要是还看不懂,欢迎评论区交流。 Mybatis基于注解开发的环境搭建 基于注解和基于配置文件的区别 注意:只要使用了注解开发,但是在配置文件路径下同时包含了UserDao.xml的配置,此时不管用不用,都会报错。(我们选择了注解开发的时候,就不能在同一个dao中选择xml开发) 单表CRUD操作(代理Dao方式) 1. 在mybatis中针对,CRUD一共有四个注解 @Select (查询) @Insert (存储数据) @Update (更新数据) @Delete (删除数据) public interface UserDao { //查询所有 @Select(value="select * from user") List<User> findAll(); //存储数据 @Insert("insert into user(username,address,sex,birthday) " + "values(#{username},#{address},#{sex},#{birthday})") void saveUser(User user); //更新操作 @Update("update user set username=#{username},address=#{address
  • SSM框架复习总结:面试高频题(含解析)+学习笔记+学习路线图!
    01 Spring 1.1 Spring高频面试题+解析 什么是 Spring 框架?Spring 框架有哪些主要模块? 使用 Spring 框架能带来哪些好处? Spring 框架中有哪些不同类型的事件? Spring 框架中都用到了哪些设计模式? 什么是控制反转(IOC)? 请解释下 Spring 框架中的 IoC ? BeanFactory 和 和 ApplicationContext 有什么区别? Spring 有几种配置方式? 如何用基于 XML 配置的方式配置 Spring ? 如何用基于 Java 配置的方式配置 Spring ? 怎样用注解的方式配置 Spring ? 请解释 Spring Bean 的生命周期? Spring Bean 的作用域之间有什么区别? 什么是 Spring inner beans ? Spring 框架中的单例 Beans 是线程安全的么? 请举例说明如何在 Spring 中注入一个 Java Collection ? 如何向 Spring Bean 中注入一个 Java.util.Properties ? 请解释 Spring Bean 的自动装配? 请解释自动装配模式的区别? 如何开启基于注解的自动装配 请举例解释@Required 注解? 请举例解释@Autowired 注解? 请举例说明@Qualifier 注解?
  • MyBatis框架学习笔记一
    MyBatis框架 1、mybatis的概述 2、mybatis的入门 mybatis的环境搭建 mybatis的入门案例 基于注解的入门案例 3、自定义Mybatis的分析 一般的持久层技术解决方案 1.JDBC技术:获得Connection、处理语句PreparedStatement、得到结果ResultSet。JDBC是一种规范 2.Spring的JdbcTemplate:Spring中对jdbc的简单封装 3.Apache的DBUtils:它和Spring的JdbcTemplate很像,也是对Jdbc的简单封装 1、mybatis的概述 mybatis是一个持久层框架,用java编写的。使用框架的好处:框架封装了很多的细节,使开发者可以使用极简的方式实现功能。大大提高开发效率。 它封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动,创建连接等繁杂过程它使用了ORM思想实现了结果集的封装。 ORM:(Object Relational Mappging 对象关系映射) 简单的说:就是把数据库表和实体类及实体类的属性对应起来让我们可以操作实体类就实现操作数据库表。 user User id userId user_name userName 我们需要做到 实体类中的属性和数据库表的字段名称保持一致。 user User id id user
  • Spring5学习笔记5——注解编程
    Spring5学习笔记5——注解编程 文章目录 Spring5学习笔记5——注解编程第五部分:Spring基于注解的编程第一章、注解基础概念1. 什么是注解编程2. 为什么要学习注解编程3. 注解的作用4. Spring注解的发展历程5. Spring注解开发的一个问题 第二章、Spring的基础注解(Spring2.x)1. 对象创建相关注解2. 注入相关注解3. 注解扫描详解3.1 排除过滤3.2 包含过滤 4. 对于注解开发的思考5. SSM整合开发(半注解开发) 第三章、Spring的高级注解(Spring3.x 及以上)1. 配置Bean2. @Bean注解2.1 @Bean注解的基本使用2.2 @Bean注解的注入 3. @ComponentScan注解3.1 基本使用:3.2 排除、包含的使用: 4. Spring工厂创建对象的方式分析:1. 多种配置方式的应用场景2. 配置优先级3. 解决基于注解进行配置的耦合问题 5. 整合多个配置信息5.1 多个配置Bean的整合5.2 配置Bean与@Component相关注解的整合5.3 配置Bean与配置文件整合 6. 配置Bean底层实现原理7. 四维一体的开发思想 第四章、纯注解编程1. 纯注解版AOP编程1. 搭建环境2. 开发步骤3. 注解AOP细节分析 2. 纯注解版Spring+MyBatis整合2.1
  • Spring学习《狂神说Java》 笔记
    因为没有用markdown编辑器 建议缩小网页来看 大概百分之70左右效果更好 2020/5/28 Spring 简介 2002年首次出现Spring框架雏形interface21 在2004年发布正式版,创始人Rod Johnson的专业是音乐学 Spring的理念:让现有的技术更加容易使用,整合了现在所有的技术框架 优点 Spring是一个开源的免费的框架! Spring是一个轻量级的、非入侵式的框架! 控制反转IOC,面向切面编程AOP 支持事务的处理,对框架整合的支持 总结一句话:Spring是一个轻量级的控制反转(IOC)和面向切面的(AOP)的框架 弊端:Spring发展了太久之后,配置太过繁杂。配置文件里面的东西很难理解 IOC引导 图1 利用set动态实现值得注入 利用这个set方法就可以从程序员new一个新对象变成客户new一个所需要得对象 图2 ioc本质 IOC本质:获得依赖对象的方式反转了,控制反转是一种通过(xml或者注解)并通过第三方生成或获取特定对象的方式,在Spring中实现控制反转的是IOC容器,其实现方法是依赖注入(DI) 图3 IOC解耦 图4 bean注入和原来new对象区别 这些实体类通过类中的无参构造注入 如果类中没有无参构造记得添加 否则在Spring中会注入失败 2020/5/29 要实现不同的操作,只需要在xml配置文件中进行修改
  • MyBatis学习笔记(全)
    文章目录 MyBatis概述软件开发分层的重要性Jdbc操作数据库的问题分析案例一:MyBatis入门案例MyBatis入门案例中的设计模式分析案例二:MyBatis注解开发入门自定义MyBatis框架mybatis在使用代理dao进行增删改查时做了哪些事?创建代理对象的分析案例三:自定义MyBatis的实现 案例四:MyBatis完成CRUD操作映射配置文件中的参数使用注意ParameterType传递参数传递pojo包装对象 MyBatis的输出结果封装resultType配置结果类型实体类属性名和数据库表列名不一致,如何实现数据映射?方法一:为列名取别名方法二:使用resultMap标签 案例五:MyBatis通过实现类完成dao层的开发SqlMapConfig.xml配置文件常用标签properties标签typeAliases标签package标签 MyBatis的连接池及事务连接池介绍MyBatis中的连接池分类使用UNPOOLED配置连接池的分析使用POOLED配置连接池的分析mybatis中的事务什么是事务数据库事务的四大特性(ACID)不考虑隔离性会产生的三个问题配置mybatis自动提交事务 动态SQLif标签where标签foreach标签简化重复编写sql语句 案例六:MyBatis的多表操作案例七:JNDI扩展知识MyBatis中的延迟加载什么是延迟加载
  • Spring全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC
    最近小编整理了一下一线架构师的Spring全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC,分享给大家一起学习一下~ 注意:有需要免费领取一线架构师的Spring全家桶笔记的朋友,可以私信【spring】免费领取~不要错过哦~ 01 Spring Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。 1.1 Spring面试必备题+解析 什么是 Spring 框架?Spring 框架有哪些主要模块?使用 Spring 框架能带来哪些好处?Spring 框架中有哪些不同类型的事件?Spring 框架中都用到了哪些设计模式?什么是控制反转(IOC)?请解释下 Spring 框架中的 IoC ?BeanFactory 和 和 ApplicationContext 有什么区别?Spring 有几种配置方式?如何用基于 XML 配置的方式配置 Spring ?如何用基于 Java 配置的方式配置 Spring ?怎样用注解的方式配置 Spring ?请解释
  • Bookmarks(三)
    Bookmarks 书签栏 tooltips提示效果,支持点击与经过显示,位置和效果可以自定义 - CSDN博客 疯狂的小萝卜头 - 博客园 【Kettle从零开始】第九弹之Kettle定时任务介绍 - RotKang - CSDN博客 Freemarker模版 Java开源Web开发框架分类列表 HTML5模板引擎 Thymeleaf 教程 - OPEN 开发经验库 Spring MVC视图层:thymeleaf vs. JSP - OPEN 开发经验库 thymeleaf 学习笔记-基础篇 - OPEN 开发经验库 HTML5模板引擎 Thymeleaf - OPEN 开发经验库 Freemarker中Configuration的setClassForTemplateLoading方法参数问题 - format丶 - 博客园 利用freemarker 静态化网页 - ajun_studio的专栏 - CSDN博客 关于Freemarker生成静态html文件及中文乱码的问题 - it_man的专栏 - CSDN博客 FreeMarker入门教程 - Raul·Fu - 博客园 最近在看的freemarker,个人认为有助于理解 - 老夫聊发少年狂 - CSDN博客 SpringMVC处理脚本,SQL注入问题 - 逍遥叹!! - 博客园 使用freemarker生成word
  • 【Spring系列六】Spring全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC
    最近小编整理了一下一线架构师的Spring全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC,分享给大家一起学习一下~ 注意:有需要免费领取一线架构师的Spring全家桶笔记的朋友,可以私信【spring】免费领取~不要错过哦~ 01 Spring Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。 1.1 Spring面试必备题+解析 什么是 Spring 框架?Spring 框架有哪些主要模块?使用 Spring 框架能带来哪些好处?Spring 框架中有哪些不同类型的事件?Spring 框架中都用到了哪些设计模式?什么是控制反转(IOC)?请解释下 Spring 框架中的 IoC ?BeanFactory 和 和 ApplicationContext 有什么区别?Spring 有几种配置方式?如何用基于 XML 配置的方式配置 Spring ?如何用基于 Java 配置的方式配置 Spring ?怎样用注解的方式配置 Spring ?请解释
  • 最新总结,2021年Spring全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC
    最近小编整理了一下2020年一线架构师的Spring全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC,分享给大家一起学习一下~备战2021! 注意:有需要免费领取一线架构师的Spring全家桶笔记的朋友,点此免费获取! 01 Spring Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。 1.1 Spring面试必备题+解析 什么是 Spring 框架?Spring 框架有哪些主要模块?使用 Spring 框架能带来哪些好处?Spring 框架中有哪些不同类型的事件?Spring 框架中都用到了哪些设计模式?什么是控制反转(IOC)?请解释下 Spring 框架中的 IoC ?BeanFactory 和 和 ApplicationContext 有什么区别?Spring 有几种配置方式?如何用基于 XML 配置的方式配置 Spring ?如何用基于 Java 配置的方式配置 Spring ?怎样用注解的方式配置 Spring ?请解释 Spring
  • 跪了!Alibaba内部优质Springboot笔记:两大项目实战+源码解析
    前言 近年来,Spring Boot 是整个Java社区中最有影响力的项目之一,它的设计初衷是解决Spring各版本配置工作过于繁重,目前已经逐渐替代传统SSM架构。但SSM和Spring Boot并不冲突。Spring Boot更简单、更自动化,减少了传统SSM开发的配置。程序员在用Springboot开发应用程序时能做到零配置或极简配置。同时,为了不失灵活性,它也支持自定义操作。 下面两张图片是Springboot在国内外的关注度趋势图: 可以看到Springboot在国内外的关注度逐年递增,它专注于快速、方便地集成单个个体,如果应用程序是基于Spring Boot开发的,则将来升级到云开发、微服务更顺利。现在已经是2020年了,我们做开发的如果还不会现在新兴的技术的话,始终会被淘汰的。 可能有些人就会说了:小编你精通Springboot了?(我就是个小菜鸡,不敢说话,后面说的话可能是班门弄斧了)这里分享一些Springboot学习经验吧,我在学Springboot的时候初期是在对基础理论有一定的了解之后,自己动手照着例子去实现一遍,最好是自己手写代码,要是自己手写不成功,就下载相关源代码进行研究,在完全理解之后再进行后面的学习。同时还要尽量让自己能合理、高效地使用开发工具(IDEA、Eclipse 等),快速提升编程效率和编程能力。我当初在学习Springboot的时候
  • 【仅限一次】由浅入深,史上最好的Spring全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC
    最近小编整理了一下一线架构师的Spring全家桶笔记:Spring+Spring Boot+Spring Cloud+Spring MVC,分享给大家一起学习一下~ 注意:有需要免费领取一线架构师的Spring全家桶笔记的朋友,可以一键三连之后【见下图】免费领取~不要错过哦~ 01 Spring Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。 1.1 Spring面试必备题+解析 什么是 Spring 框架?Spring 框架有哪些主要模块?使用 Spring 框架能带来哪些好处?Spring 框架中有哪些不同类型的事件?Spring 框架中都用到了哪些设计模式?什么是控制反转(IOC)?请解释下 Spring 框架中的 IoC ?BeanFactory 和 和 ApplicationContext 有什么区别?Spring 有几种配置方式?如何用基于 XML 配置的方式配置 Spring ?如何用基于 Java 配置的方式配置 Spring ?怎样用注解的方式配置 Spring ?请解释
  • SSM框架学习笔记9—SpringMVC常用注解和RESTful介绍
    SSM框架学习笔记9—SpringMVC常用注解和RESTful介绍 3 常用注解3.1 @Controller(重要)3.2 @RequestMapping(重要)3.3 @Resource和@Autowired(重要)3.4 @ModelAttribute3.5 @SessionAttributes3.6 @PathVariable (重要)3.7 @RequestParam3.8 @ResponseBody (重要)3.9 @RestController(重要)3.10 @Component3.11 @Repository 4 RESTful4.1 简介4.2 架构4.3 特点4.4 与SpringMVC的联系 SSM框架学习笔记系列,记录的是我在参加学校的京淘项目时所学习的内容,经我个人总结整理而成为本系列学习笔记。预计将分开为X篇进行记录,目前已有10篇。 接下来是这一系列的第九篇学习笔记 3 常用注解 3.1 @Controller(重要) 在SpringMVC中,控制器Controller负责处理由DispatcherServlet分发的请求,它把用户请求中的数据经过业务处理层处理后封装为一个Model,然后将该Model返回相应的View进行显示。 在SpringMVC中提供了一个非常简单的定义Controller的方法,你无需继承特定的类或者实现特定的接口
  • Spring Boot学习笔记(十七)整合 mysql、mybatis-plus 使用redis进行缓存(带工程源码)
    工程源码: 百度云链接 提取码:5o0zcsdn 下载链接 文章目录 1. 给springboot 工程添加pom依赖2. 在application中进行配置3. 启用缓存机制4. 开发缓存注解4.1 编写实体类SpringBootUser4.2 编写mybatis-plus相关文件4.3 添加redis配置4.4 编写调用方法 5. 测试6. 讲解6.1 注解6.2 注意要点6.3 脏数据的处理 1. 给springboot 工程添加pom依赖 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.0</version> </dependency> <dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache<
  • 从零入门MyBatis完整学习笔记(包含MyBatis各类基本配置,CRUD,结果集映射,分页,注解开发,动态SQL以及MyBatis缓存)
    本篇学习笔记总结自bilibiliup主【狂神说Java】系列视频:【狂神说Java】Mybatis最新完整教程IDEA版通俗易懂 视频作者公众号:狂神说 1、简介 1.1、什么是MyBatis MyBatis 是一款优秀的持久层框架.它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 1.2、如何获得MyBatis? Maven仓库 <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.2</version> </dependency> Github:https://github.com/mybatis/mybatis-3/releases 中文文档:https://mybatis.org/mybatis-3/zh/index.html 1.3、持久化 数据持久化