Spring
Spring学习笔记
我就要用HashMap
这个作者很懒,什么都没留下…
展开
-
1.初识Spring
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架),由 7 个模块组成,每个模块都可以单独存在,或者与其他模块联合实现 Spring Core:为Spring 框架提供基本功能,定义了创建、配置和管理 bean 的方式 Spring Context:向 Spring 框架提供上下文信息,是一个配置文件 Spring AOP:为应用程序提供事务管理服务 Spring DAO:管理异常处理和不同数据库供应商抛出的错误消息 Spring ORM:提供了 ORM 的对象关系工具 Spri原创 2021-12-28 11:47:51 · 186 阅读 · 0 评论 -
2.IoC基础
IoC原型 UserDao接口 package com.dream.dao; public interface UserDao { void getUser(); } UserDao实现类 package com.dream.dao; public class UserDaoImpl implements UserDao{ @Override public void getUser() { System.out.println("获取用户数据"); }原创 2021-12-28 15:11:52 · 232 阅读 · 0 评论 -
3.第一个Spring程序
导入相关Maven依赖 <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.13</version> </depende原创 2021-12-28 16:15:42 · 88 阅读 · 0 评论 -
4.IoC创建对象的方式
通过无参构造方法来创建 新建User类 package com.dream.pojo; public class User { private String name; public User() { System.out.println("user无参构造方法"); } public void setName(String name) { this.name = name; } public void show(){原创 2021-12-28 16:57:48 · 149 阅读 · 0 评论 -
5.Spring配置
<alias name="hello" alias="hello2"/> alias:可为bean设置多个别名 <bean id="hello" name="hello3 hello4,hello5;hello6" class="com.dream.pojo.Hello"> <property name="name" value="Spring"/> </bean> bean:java对象 id:bean的唯一标识符 name:若没原创 2021-12-28 17:34:53 · 68 阅读 · 0 评论 -
6.依赖注入
构造器注入已经讲过 set注入 新建实体类 package com.dream.pojo; public class Address { private String address; public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Overr原创 2021-12-28 20:15:34 · 165 阅读 · 0 评论 -
7.Bean的自动装配
Spring中bean有三种装配机制,分别是在xml中显式配置,在java中显式配置,隐式的bean发现机制和自动装配 Spring的自动装配需要通过两个操作来实现,一是组件扫描,spring会自动发现应用上下文中所创建的bean,二是自动装配,spring自动满足bean之间的依赖,也就是我们说的IoC/DI 新建实体类 package com.dream.pojo; public class Cat { public void shout(){ System.out.print原创 2021-12-29 15:56:52 · 103 阅读 · 0 评论 -
8.使用注解开发
Bean的实现 之前是使用 bean 的标签进行bean注入,但在实际开发中我们一般都会使用注解 配置扫描哪些包下的注解 <context:component-scan base-package="com.dream.pojo"/> 在指定包下编写类,增加注解,将这个类交给Spring管理装配 @Component("user") public class User { public String name = "张三"; } 测试 ApplicationContext contex原创 2021-12-29 17:42:29 · 178 阅读 · 0 评论 -
9.代理模式
静态代理 package com.dream.demo1; public interface Rent { void rent(); } package com.dream.demo1; public class Host implements Rent{ @Override public void rent() { System.out.println("房东出租房子"); } } package com.dream.demo1; public c原创 2021-12-30 10:37:14 · 80 阅读 · 0 评论 -
10.AOP的实现
AOP意为面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护 在SpringAOP中,通过通知定义横切逻辑,可以在不改变原有代码的情况下 , 去增加新的功能 导入相关Maven依赖 <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc&l原创 2021-12-30 17:25:48 · 302 阅读 · 0 评论 -
11.整合MyBatis
搭建测试环境 导入相关依赖及静态资源过滤问题处理 <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include&g原创 2021-12-31 11:19:43 · 194 阅读 · 0 评论 -
12.声明式事务
事务的四个属性ACID 原子性:事务动作要么全部完成,要么完全不起作用 一致性:一旦所有事务动作完成,事务就要被提交 隔离性:多个事务同时处理相同的数据时,每个事务隔离开来防止数据损坏 持久性:事务的结果被写到持久化存储器中,事务一旦完成,无论系统发生什么错误,结果都不会受到影响 在之前的案例中,我们给userDao接口新增删除和增加用户的方法 int addUser(User user); int deleteUser(int id); 在mapper配置文件中我们故意把delete写错 <原创 2021-12-31 15:11:13 · 493 阅读 · 0 评论