@Component spring容器是一个Map结构,是由于key 和vlaue组成的 运行测试 无法运行 出错的原因↓ 第一部是解析配置文件.但是配置文件这里是空的.我们的bean里面什么对象都没有定义 需要有一行配置 spring的文档里面 搜索xmls:cont 把这一段复制过去 配置上之后,就会扫描com.itheima包下的以及它的子包的类或者接口上的注解 再次运行测试 成功运行 指定id的方式 这里对应注解的value配置的id值 value属性可省略…
为什么要使用者三个注解 Controller:表现层 Service:业务层 Repository:持久层 在这里就是用Controller 运行也没问题 用Service Repository同样也是可以的,这里不再尝试 dao内配置 测试dao的注解 总结 有些时候对象不属于三层的话,可以直接用Component注解直接来创建…
运行出现了空指针异常 @Autowired 注解出现的位置 AutoWired的代码 常用的就是写类上和方法上. 运行测试,刚才运行是一个空指针异常 也就是通过Autowired 这个accountDao这个对象不为空了. 注入成功原理 自动按照类型注入.IAccountDao去Spring的容器里面直接找的Value值 如果把实现类继承接口IAccountDao这里代码注释掉的话 再次运行就发现注不进去报错. 假设容器中两个实现类 复制一份改个名字 id后面也加上2 第一个实现的实现接口的代码…
注解配置和xml的配置要实现的功能都是一样的.都是要降低程序间的耦合,只不过配置的形式不一样 打包方式改成jar 加入spring 的依赖 复制之前的代码过来 复制到我们新建的工程里 resurces下面的bean.xml也粘贴过来 项目的结构 接下来要把bean.xml里面的配置都使用注解来配置 测试方法先整理 配置文件内都删除bean.xml 注解 注解分为四类…
Scope 改成多例 PreDestory和PostConstruct PreDestory和PostConstruct这两个注解了解即可 增加两个方法,分别用注解 没有执行销毁方法. 如果你一个子类看成一个父类型那么就只能调用父类的方法.我们需要把它看成是自己.然后就可以调用自己的close方法,手动释放资源. 多例的注解,注释掉.暂时不用 这样这个bean对象就是单例的了…
@Qualifier 指定id为accountDao1 测试 如果把Autowired注释掉的话, 就会报空指针异常.就是没有注入进来 @Qualifier不能独立使用必须和Autowired配合使用 Resource Resource 总结 @Value…
此时没有异常 测试我们的方法 执行报错 注解在实际的测试过程中,实际的执行顺序是有问题的.会先调用最终通知.然后再调用后置通知 最终通知已经关闭了连接.再调用后置通知肯定报错. getThreadConnection发现当前线程上已经没有连接了 没有链接了会去再拿一个链接.再绑定到线程上.虽然已经绑定上去了.由于前置通知已经执行完了.这个connection自动提交已经是true了 再提交就不行了. 这里我们把自动提交设置为false测试下 通过打断点的方式.再下面三个地方加断点 运行测试,使用…
前言 前面两篇文章(如何实现一个简易版的 Spring - 如何实现 Setter 注入.如何实现一个简易版的 Spring - 如何实现 Constructor 注入)介绍的都是基于 XML 配置文件方式的实现,从 JDK 5 版本开始 Java 引入了注解支持,带来了极大的便利,Sprinng 也从 2.5 版本开始支持注解方式,使用注解方式我们只需加上相应的注解即可,不再需要去编写繁琐的 XML 配置文件,深受广大 Java 编程人员的喜爱.接下来一起看看如何实现 Spring 框架中最常…
随着技术的更新迭代,Java5.0开始支持注解.而作为java中的领军框架spring,自从更新了2.5版本之后也开始慢慢舍弃xml配置,更多使用注解来控制spring框架. 而spring的的注解那么多,可能做java很多年,都用不上.这里按照类型总结了这7种最常用的注解. 1  核心注解 @Required 此注解用于bean的setter方法上.表示此属性是必须的,必须在配置阶段注入,否则会抛出BeanInitializationExcepion. @Autowired 此注解用于bean…