- 博客(56)
- 收藏
- 关注
原创 自动装配 @Autowired @Resource
总结: 就是反着来,先按名字后按类型是@Resource. 但是其实也没那么多要求,@Autowired可以理解为按名字的,因为要先看是不是一个bean,类型不行还是走名字,只有一个bean我管你走什么? 不管哪种注解, 规范地按照类名首字母小写写id(属性名),就可以注入!!! 一般情况下用@Resource,不过泛型依赖注入还得用@Autowired.
2023-12-12 17:32:30
137
原创 声明式事务练习题
要求1.设计四张表,据此知道Dao也应该设计4个,Service相当于把这些Dao综合起来完成一个Shopping购买的行为.2.创建四个dao3.service包下写Goods2Service.java,简单实现声明式事务4.src下创建Spring容器配置文件shopping_ioc.xml5.spring包下写测试类。
2023-12-12 12:58:30
92
原创 简单实现Spring容器(六) 实现AOP机制
(3)AOP的机制是基于Bean的后置处理机制和动态代理的,因为是在后置处理器的after方法里面通过一个处理返回了一个动态代理对象交给使用者,使用者通过调用这个方法,比如getSum()实际上是走的动态代理对象的invoke()方法来实现这样一个动态调用的,在这个过程可以进行前置通知,返回通知,异常通知,最终通知来进行切入.==2.拿到过后先进行扫描,得到bean里的class对象,因为这个包下的有些bean是不需要进行注入的,所以需要排除不是bean的class.<2>Before注解。
2023-12-11 16:27:15
101
原创 简单实现Spring容器(五) 实现bean后置处理器BeanPostProcessor机制
有一种接口叫标记接口,里面一个方法都没有,它实现这个接口的价值就是在它底层去判断你这个类是否要去走一个业务,Serilaizable接口就是,实现了这个接口但并没有实现任何方法,它其实就是个标记接口.(标记接口主要是给底层使用的=>看到你有这个接口,我就要干什么事情.)在容器中常用的一个方法是:根据该类是否实现了某个接口来判断是否要执行某个业务逻辑,这里就是基础的接口编程的实际应用。运行看实现了接口的Bean在创建好后,有没有触发初始化方法.3.在创建好Bean实例后,判断是否需要初始化,容器文件。
2023-12-11 12:47:08
94
原创 简单实现Spring容器(四) 依赖注入
3.关键:creatBean方法里,当反射得到实例,这个实例加入依赖注入的业务逻辑.(因为这里已经拿到了Component组件的class对象cla,通过这个cla对象,是可以拿到类的字段filed.拿到这个字段再去判断你的这个字段有没有autowired的注解修饰,然后再进行下一步)2.在component包下的MonsterService类下增加一个属性monsterDao,引用MonsterDao类。报空指针,非法访问异常.反射里如果属性是私有的,必须进行爆破.注解@autowired。
2023-12-10 11:54:47
116
原创 简单实现Spring容器(三) 初始化单例池并完成getBean() createBean()方法
调用getBean()是先到beanDefinitionMap里根据bean来查信息,查到beanDefinition对象.里面记录了对象是单例的还是多实例的.3.如果这个bean是prototype,到BeanDefinition Map中,得到Bean的Clazz对象,使用反射创建bean对象,并返回.2.如果这个bean是singleton,从单例池 单例BeanMap集合中获取即可.初始化单例池,也就是如果Bean是单例的就实例化,并放入到单例池Map.1.如果这个bean不存在就抛出异常.
2023-12-09 21:11:39
148
原创 简单实现Spring容器(二) 封装BeanDefinition对象放入Map
阶段2: // 1.编写自己的Spring容器,实现扫描包,得到bean的class对象. 2.扫描将 bean 信息封装到 BeanDefinition对象,并放入到Map.### 思路:1.将 bean 信息封装到 BeanDefinition对象中,再将其放入到BeanDefinitionMap集合中,集合的结构大概是 key[beanName]--value[beanDefintion] key--------->对应指定的名字,未指定则以类的首字母小写为其名字
2023-12-07 23:05:05
286
原创 简单实现Spring容器(一)
手动实现Spring容器阶段1: 编写自己的Spring容器,实现扫描包,得到bean的class对象.思路: 使用 ElfSpringConfig.java 替代beans.xml文件作为配置文件,从中获取到: 1.扫描包,得到bean的class对象. 2.排除包下不是bean的
2023-12-07 18:47:10
141
转载 动态代理jdk的Proxy与Spring的CGlib
转载路径:https://www.cnblogs.com/threeAgePie/p/15832586.html。
2023-09-20 15:20:46
45
原创 使用Properties类来读取mysql.properties 文件
【代码】使用Properties类来读取mysql.properties 文件。
2023-04-25 20:03:49
158
原创 网络编程块~InetAddress类
一、通过类调用方法,从而获取对象的两个方法(一个本机的,另一个是远程的通过指定其主机名或域名来获取对象)。二、通过类对象,获取Ip地址,也可以获取主机名和域名。
2023-04-21 14:45:05
11
原创 转换流InputStreamReader、OutputStreamWriter
【代码】转换流InputStreamReader、OutputStreamWriter。
2023-04-19 20:16:58
162
原创 反射机制代码示例
- 反射:即通过外部文件的配置,在不修改源码的条件下,控制程序。也符合设计模式的ocp原则(开闭原则:不修改源码,扩容功能) - 示例如下根据配置文件re.properties指定信息,创建Cat对象并调用hi方法 - classfullpath=com.elf.Cat - method =hi
2022-12-10 20:44:41
147
原创 FileWriter中5种write方式
1>write(int):写入单个字符 2>write(char[]):写入指定数组 3>write(char[],off,len):写入指定数组的指定部分 4>write(String):写入整个字符串 5>write(String,off,len):写入字符串的指定部分
2022-12-06 19:14:22
638
原创 面向对象部分看输出练习题
整体思路:step1:类加载过程step:执行main方法里的代码细节:new 执行完 —— 执行构造块 ——执行构造方法
2022-12-06 13:55:16
76
空空如也
为什么之前写的文章看不见了
2023-12-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人