创建maven的新项目 先复制坐标的依赖. 再把代码复制进来 先改造ioc的部分 复制上面一行代码.到下面 改成context 这里也是复制的上面两行代码.到下面改成context关键字 配置扫描的包 Service改成注解 accountDao用Autowired注入.下面的set方法就用不到了.可以删掉. bean.xml内的service就可以删除掉了. dao注解 xml内的dao配置就可以删除 这里QueryRunner的配置保留,因为涉及到纯注解配置的内容 connectionUti…
注解: 1.注解就是为了说明java中的某一个部分的作用(Type) 2.注解都可以用于哪个部门是@Target注解起的作用 3.注解可以标注在ElementType枚举类所指定的位置上 4. @Documented    //该注解是否出现在帮助文档中 @Retention(RetentionPolicy.RUNTIME) //该注解在java,class和运行时都起作用 @Target(ElementType.ANNOTATION_TYPE)//该注解只能用于注解上 public @inte…
运行出现了空指针异常 @Autowired 注解出现的位置 AutoWired的代码 常用的就是写类上和方法上. 运行测试,刚才运行是一个空指针异常 也就是通过Autowired 这个accountDao这个对象不为空了. 注入成功原理 自动按照类型注入.IAccountDao去Spring的容器里面直接找的Value值 如果把实现类继承接口IAccountDao这里代码注释掉的话 再次运行就发现注不进去报错. 假设容器中两个实现类 复制一份改个名字 id后面也加上2 第一个实现的实现接口的代码…
@Component spring容器是一个Map结构,是由于key 和vlaue组成的 运行测试 无法运行 出错的原因↓ 第一部是解析配置文件.但是配置文件这里是空的.我们的bean里面什么对象都没有定义 需要有一行配置 spring的文档里面 搜索xmls:cont 把这一段复制过去 配置上之后,就会扫描com.itheima包下的以及它的子包的类或者接口上的注解 再次运行测试 成功运行 指定id的方式 这里对应注解的value配置的id值 value属性可省略…
注解配置和xml的配置要实现的功能都是一样的.都是要降低程序间的耦合,只不过配置的形式不一样 打包方式改成jar 加入spring 的依赖 复制之前的代码过来 复制到我们新建的工程里 resurces下面的bean.xml也粘贴过来 项目的结构 接下来要把bean.xml里面的配置都使用注解来配置 测试方法先整理 配置文件内都删除bean.xml 注解 注解分为四类…
Scope 改成多例 PreDestory和PostConstruct PreDestory和PostConstruct这两个注解了解即可 增加两个方法,分别用注解 没有执行销毁方法. 如果你一个子类看成一个父类型那么就只能调用父类的方法.我们需要把它看成是自己.然后就可以调用自己的close方法,手动释放资源. 多例的注解,注释掉.暂时不用 这样这个bean对象就是单例的了…
为什么要使用者三个注解 Controller:表现层 Service:业务层 Repository:持久层 在这里就是用Controller 运行也没问题 用Service Repository同样也是可以的,这里不再尝试 dao内配置 测试dao的注解 总结 有些时候对象不属于三层的话,可以直接用Component注解直接来创建…
@Qualifier 指定id为accountDao1 测试 如果把Autowired注释掉的话, 就会报空指针异常.就是没有注入进来 @Qualifier不能独立使用必须和Autowired配合使用 Resource Resource 总结 @Value…
此时没有异常 测试我们的方法 执行报错 注解在实际的测试过程中,实际的执行顺序是有问题的.会先调用最终通知.然后再调用后置通知 最终通知已经关闭了连接.再调用后置通知肯定报错. getThreadConnection发现当前线程上已经没有连接了 没有链接了会去再拿一个链接.再绑定到线程上.虽然已经绑定上去了.由于前置通知已经执行完了.这个connection自动提交已经是true了 再提交就不行了. 这里我们把自动提交设置为false测试下 通过打断点的方式.再下面三个地方加断点 运行测试,使用…