Spring
如何实现一个IOC容器
配置文件配置包扫描路径
递归包扫描获取.class文件
反射,确定需要交给IOC管理的类
对需要注入的类进行依赖注入
配置文件中指定需要扫描的包路径
定义一些注解,...分别表示访问控制器,业务控制层,数据持久层,依赖注入注解,获取配置文件注解
从配置文件中获取需要扫描的包路径,获取到当前路径下的文件信息及文件夹信息,我们将当前路径下所有的以.class结尾的文件添加到一个...Set集合中进行存储
遍历这个Set集合,获取在类上有指定注解的类,并将其交给IOC容器,定义一个安全的Map来存储这些对象
遍历这个IOC容器,获取到每一个类的实例,判断里面是否有依赖其他类的实例,然后注入...,那么代理逻辑中就会将事务进行提交,如果执行业务逻辑方法出现了异常,那么则会将事务回滚
当然,针对哪些异常回滚事务是可以配置的,可以利用@Transational注解中的rollbackFor属性进行配置...Hibernate HQL语句的调优需要将SQL打出来,而Hibernate的SQL被很多人嫌弃因为太丑了。MyBatis的SQL是自己手动写的所以调整方便。但Hibernate具有自己的日志统计。