SpringIOC框架简单实现(注解实现)


前情回顾


运用注解的方式来实现IOC

首先,让我们来创建一个Dog类

@Component("dog")//唯一标识名称
public class Dog implements Pet{
@Autowired
@Value("大狗")
private String name; @Override
public String toString() {
return name;
} public void say(){
System.out.println("WangWang");
}
}
  • @Component:注名,类同XML中的< bean id="dog" >
  • @Autowrited:它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法
  • @Value:注入值,类同XML中的< bean value="..." >

建立接口

public interface Pet {
void say();
}

建立Person类

@Component("person")//唯一标识名称
public class Person {
@Autowired
@Value("小狗")
private String name; @Autowired
private Pet pet; public void KeepPet() {
System.out.println(name + "和" + pet + "站在树下说:");
pet.say();
}

建立SpringConfiguration类

该类等同于xml文件,具有一样的功能,具体请看代码

@Configuration//标注该类是配置文件XML
@ComponentScan("Ex04")//扫描包
public class SpringConfiguration {
}
  • @ComponentScan:根据定义的扫描路径,把符合扫描规则的类装配到spring容器中
  • @Configuration:定义配置类,可替换xml配置文件
    • 注意:

      @Configuration不可以是final类型;

      @Configuration不可以是匿名类;

      嵌套的configuration必须是静态类;

建立一个测试类

@RunWith(SpringJUnit4ClassRunner.class)//自带的集成测试
@ContextConfiguration(classes = {SpringConfiguration.class})//获取Spring容器
//@ContextConfiguration(locations = "appkicationContext.xml");//获取XML中Spring容器,和上面的只能二者存一
public class Test_anno {
@Autowired
private Person person; @Test
public void test() {
person.KeepPet();
}
}
  • @RunWith就是一个运行器

    • @RunWith(JUnit4.class):指用JUnit4来运行
    • @RunWith(SpringJUnit4ClassRunner.class):让测试运行于Spring测试环境
    • @RunWith(Suite.class):一套测试集合
  • 当@ContextConfigurationSpring整合JUnit4测试时,使用注解引入多个配置文件
    • 单个文件:

      @ContextConfiguration(Locations=“classpath:applicationContext.xml”)

      @ContextConfiguration(classes = SimpleConfiguration.class)
    • 多个文件:

      @ContextConfiguration(locations = { “classpath:spring1.xml”, “classpath:spring2.xml” })
  • @ContextConfiguration(locations = "appkicationContext.xml"):获取指定的xml文件,但是和注解方式获取只能二者存一

测试运行,成功。


总结

通过注解方式来实现SpringIOC框架可以更加的便捷,但是相应的也会有一定的弊端,xml和注解方式各有优点,编译者可以自由的选择两种方式或嵌套使用。

以上就是以注解实现SpringIOC框架,如有错误,麻烦指出,感谢耐心到现在的朋友ᕕ( ᐛ )ᕗ ---By 不断努力的Yang

SpringIOC框架简单实现(注解实现)的更多相关文章

  1. SpringMVC框架搭建 基于注解

    本文将以一个很简单的案例实现 Springmvc框架的基于注解搭建,一下全为个人总结 ,如有错请大家指教!!!!!!!!! 第一步:创建一个动态web工程(在创建时 记得选上自动生成 web.xml ...

  2. Play Framework框架 JPA惯用注解

    Play Framework框架 JPA常用注解 1.@Entity(name=”EntityName”) 必须 ,name 为可选 , 对应数据库中一的个表 2.@Table(name=”" ...

  3. Spring框架学习之注解配置与AOP思想

         上篇我们介绍了Spring中有关高级依赖关系配置的内容,也可以调用任意方法的返回值作为属性注入的值,它解决了Spring配置文件的动态性不足的缺点.而本篇,我们将介绍Spring的又一大核心 ...

  4. SpringMvc框架MockMvc单元测试注解及其原理分析

    来源:https://www.yoodb.com/ 首先简单介绍一下Spring,它是一个轻量级开源框架,简单的来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开 ...

  5. springmvc+spring3+hibernate4框架简单整合,简单实现增删改查功能

    转自:https://blog.csdn.net/thinkingcao/article/details/52472252 C 所用到的jar包     数据库表 数据库表就不用教大家了,一张表,很简 ...

  6. MongoDB聚合运算之group和aggregate聚集框架简单聚合(10)

    聚合运算之group 语法: db.collection.group( { key:{key1:1,key2:1}, cond:{}, reduce: function(curr,result) { ...

  7. Hibernate框架简单应用

    Hibernate框架简单应用 Hibernate的核心组件在基于MVC设计模式的JAVA WEB应用中,Hibernate可以作为模型层/数据访问层.它通过配置文件(hibernate.proper ...

  8. Springmvc整合tiles框架简单入门示例(maven)

    Springmvc整合tiles框架简单入门示例(maven) 本教程基于Springmvc,spring mvc和maven怎么弄就不具体说了,这边就只简单说tiles框架的整合. 先贴上源码(免积 ...

  9. Django - Django框架 简单介绍

    Django框架 简单介绍 本文地址: http://blog.csdn.net/caroline_wendy/article/details/29172271 1. 介绍 Django是一个开放源码 ...

随机推荐

  1. CSS:CSS基础

    和 HTML 类似,CSS 也不是真正的编程语言,甚至不是标记语言.它是一门样式表语言,这也就是说人们可以用它来选择性地为 HTML 元素添加样式. CSS规则集 选择器(Selector):元素的名 ...

  2. go map嵌套 map的value可以是任意类型

    在日常编程中,除了使用内置的数据类型,还会使用一些复杂的自定义数据类型,比如map K为string,V为数组.先了解一下go对map的基本设定: map的key可以是任意内置的数据类型(如int), ...

  3. 【转载】java类加载时机与过程

    1  开门见山 以前曾经看到过一个java的面试题,当时觉得此题很简单,可是自己把代码运行起来,可是结果并不是自己想象的那样.题目如下: class SingleTon { private stati ...

  4. JavaScript中的事件循环机制跟函数柯里化

    一.事件循环机制的理解 test();//按秒输出5个5 function test() { for (var i = 0; i < 5; i++) { setTimeout(() => ...

  5. 死磕Spring之IoC篇 - @Autowired 等注解的实现原理

    该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1. ...

  6. 进阶Java多线程

    一.多线程创建方式 1.1.继承Thread类创建线程类 1.实现步骤 定义一个继承Thread类的子类,并重写该类的run()方法: 创建Thread子类的实例,即创建了线程对象: 调用该线程对象的 ...

  7. ClickHouse元数据异常-MySQLHandlerFactory:Failed to read RSA key pair from server

    Clickhouse版本:20.3.6.40-2 clickhouse集群三个节点,一分片,三副本,三个节点数据完全一样 1. 问题描述 在使用连接工具操作时,发现其中一个节点连接拒绝,无法操作,另外 ...

  8. C语言编程 菜鸟练习100题(21-30)

    [练习21]计算自然数的和 0. 题目: 计算自然数的和 1. 分析: 练习使用 for 循环结构.for 循环允许一个执行指定次数的循环控制结构. 2. 程序: #include <stdio ...

  9. 如何使用python把json文件转换为csv文件

    @ 目录 了解json整体格式 转换格式 提取key和value 使用pandas写入csv 了解json整体格式 这里有一段json格式的文件,存着全球陆地和海洋的每年异常气温(这里只选了一部分): ...

  10. 新的颜色对比度算法-感知对比度算法APCA

    目录 对比度 在控制台查看 插件或网站 感知对比度算法(APCA) APCA Math 原理 js 实现的 SAPC 最后 灵感的源泉来源于不断的接受新鲜事物. Chrome 89 新功能一览,性能提 ...