SpringIOC注解的HelloWorld


Spring容器对于Bean的创建和对象属性的依赖注入提供了注解的支持,让我们在开发中能够更加便捷的实现对象的创建和对象属性的依赖注入。

一、对于Bean的创建spring容器提供了以下四个注解的支持:

1、@Component     普通的对象创建

2、@Repository   dao层实现类的注解

3、@Service   service层实现类的注解

4、@Controller  controller层实现类的注解

以上四个注解在普通使用中是等效的,但在web项目中为了区分三层架构中不同层之间Bean的创建,为了避免注解使用的混乱,使用后三个注解进行区分。

二,对于Bean属性的依赖注入分为两类,一类是对于属性是String类型或者基本数据类型Spring容器提供了@Value这个注解,另一类是对于属性是对象的提供了@Autowired@Resource这两个注解。

其中,@Autowired这个注解是Spring框架自带的注解,而@Resource(javax.annotation.Resource)这个注解是javax扩展包中注解规范的一种,而Spring对这一注解提供了支持。

接下来我们先看看Spring的注解的HelloWorld如何开发?

一、多导入一个spring-aop的支持包

因为Spring的注解开发依赖了spring-aop的包,所以需要在spring-ioc的XML开发包的基础多导入一个:

否则,如果不导入该包,会报一下异常:

二、编写Bean类

CustomerDao接口:

package com.yiidian.dao;
/*** * @author http://www.yiidian.com**/
public interface CustomerDao {public void save();
}

CustomerDaoImpl:

package com.yiidian.dao.impl;import org.springframework.stereotype.Component;import com.yiidian.dao.CustomerDao;
/*** @author http://www.yiidian.com**/
@Component(value="customerDao")  //如果不加value,名称默认为类名:customerDaoImpl
public class CustomerDaoImpl implements CustomerDao {@Overridepublic void save() {System.out.println("测试SpringIOC的注解用法");}}

三、配置applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!-- 开启SpringIOC注解扫描 --><context:component-scan base-package="com.yiidian.dao"></context:component-scan></beans>

四、编写测试类

package com.yiidian.test;import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.yiidian.dao.CustomerDao;
/*** @author http://www.yiidian.com**/
public class Demo1 {@Testpublic void test1(){ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");CustomerDao customerDao = (CustomerDao)ac.getBean("customerDao"); customerDao.save();}
}

五、运行结果

源码下载:http://pan.baidu.com/s/1eSaoRrs

Spring4.x(17)--SpringIOC注解的HelloWorld相关推荐

  1. Spring4.x()---SpringAOP注解的HelloWorld

    SpringAOP注解的HelloWorld 该案例演示SpringAOP的注解方式的开发.大家可以和XML方式进行对比学习,<SpringIOC的HelloWorld>. 一.编写业务类 ...

  2. springioc注解版运行效果演示

    我们讲一个新的知识,就是手写一下IOC容器,怎么手写一下SpringIOC XML版本,还有手写一下SpringIOC注解的版本,那么相对来说,我们用注解版本的次数可能要多点,很少用到XML版本,XM ...

  3. springioc注解详解

    springioc注解详解 文章目录 springioc注解详解 *简略核心解释 一.springioc是什么? 二.使用步骤 1.使用注解的方式注册bean到IOC容器中 2.使用@AutoWire ...

  4. 手写 springIoc 注解版 ,实现@Service (beng),@Resource (依赖注入)

    手写springIoc 注解版 代码demo https://pan.baidu.com/s/1jyvLMDrg_bfpKmhtrTTZSQ 提取码:5ju1 代码目录结构 1.pom.xml < ...

  5. spring4.x(4)--SpringIOC的HelloWorld

    SpringIOC的HelloWorld 一.建立Java工程,导入spring ioc必须的jar包 注意:commons-logging-1.2.jar这个包是来自于apache的日志包. 二.编 ...

  6. 手写springioc注解注入对象基本实现

    还是要养成写注释的习惯,首先一个代码想让人家看懂的情况下,记住一点,重构加设计模式,其实设计模式也比较好,达到别人可易读性,这是我要跟你讲的,而且你们不写注释是一个不好的习惯,你们一定要养成我善于重构 ...

  7. 【Spring4.0】基于注解的方式Bean配置

    一.注解的作用 组件扫描(component scanning): Spring 能够从 classpath 下自动扫描, 侦测和实例化具有特定注解的组件. 二.特定的注解 @Component: 基 ...

  8. SpringIOC注解的学习笔记(一)

    一:引入jar包 二:引入Spring的配置文件,放在src下 三:引入约束 the context schema 四:创建接口和实现类 新建一个Java包com.spring.demo1在包下面建立 ...

  9. Mybatis(17)注解方式增删改查单表

    IUserDao.java /*在mybatis中,CRUD一共有四个注解 * @Select @Insert @Update @Delete*/ public interface IUserDao ...

最新文章

  1. 使用傅里叶变换进行图像边缘检测
  2. python从入门到实践和从入门到精通-Python从入门到实践之列表|第1天
  3. rpm命令,yum命令大全
  4. 微服务实践分享(3)服务发现
  5. Office 插件开发和部署的总结
  6. bugku ——加密 做题记录
  7. Qt 中使用全局变量的方法
  8. 【软件测试岗面经分享】华为测试工程师面经,已成功上岸
  9. cml sml区别_【投资组合理论】CAL、CML、SML的区别和联系
  10. 直播预告:Envoy Core Maintainer 跨洋解读 Envoy 技术(中文)
  11. Excel分列小技巧
  12. iphone11各机型对比_三款机型运行速度对比,iPhone11Pro表现如何?
  13. 【iOS遇到的问题】switch控件--在设置switch按钮状态为on或者off,运行app,模拟器黑屏
  14. 如何用uniapp+vue开发自定义相机插件——拍照+录像功能
  15. 利用机器学习分析脑电数据(原理分析+示例代码+快速上手)
  16. Linux分区命令-parted
  17. 阻塞式IO和非阻塞式IO
  18. python大数据之异常值处理
  19. 天地在我心 2010-11-12
  20. InnoSetup的简繁体中文语言文件ChineseSimplified.isl和ChineseTraditional.isl

热门文章

  1. php ios支付宝不回调,支付宝 支付成功 ios 不回调
  2. 线程安全、同步与互斥机制以及死锁的产生与实现
  3. 程序设计工程师c语言,《C语言程序设计》自学百问.doc
  4. 《Reids 设计与实现》第十五章 集群(中)
  5. Mysql之数据库锁(表锁和行锁)详解
  6. 微信小程序|开发实战篇之三
  7. ElasticSearch API实现CRUD
  8. Django学习之Cookie和Session
  9. 第26月第13天 hibernate导包
  10. [HAOI 2010]订货