spring3.2.5学习(二)——IoC注解配置

一、前言

这篇随笔主要是记录IoC完全使用Annotation的过程。

二、架包以及资源

架包的引入,以及项目结构参考spring3.2.5学习(一)——spring环境配置以及IOC简介

三、配置环境

1.配置applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:context="http://www.springframework.org/schema/context"
     xsi:schemaLocation="http://www.springframework.org/schema/beans
         http://www.springframework.org/schema/beans/spring-beans.xsd
         http://www.springframework.org/schema/context
         http://www.springframework.org/schema/context/spring-context.xsd">

    <context:annotation-config/>
    <!-- 配置注解扫描 -->
    <context:component-scan base-package="com.cyrus.platform" />

</beans>

其中base-package为指定扫描路径,当前配置为扫描路径:com.cyrus.paltform下的类。

2.服务类TCyrusUserService注释

package com.cyrus.platform.service;

import javax.annotation.Resource;

import org.springframework.stereotype.Component;

import com.cyrus.platform.dao.TCyrusUserDAO;
import com.cyrus.platform.model.TCyrusUser;

@Component("userService")
public class TCyrusUserService {
    private TCyrusUserDAO userDAO;

    public void save(TCyrusUser user){
        this.userDAO.save(user);
    }

    public TCyrusUserDAO getUserDAO() {
        return userDAO;
    }

    @Resource(name="userDAO")
    public void setUserDAO(TCyrusUserDAO userDAO) {
        this.userDAO = userDAO;
    }

}

其中@Component("userService") 类似于spring配置文件中bean标签,括号内的userService为bean标签中的name属性;@Resource相当于bean标签下的property属性配置,@Resource没有指定名称时,默认的搜寻规则为先查询类型,如果类型无法匹配,再查询名称。在@Resource中添加name属性则指定相关bean。

3.实现类TCyrusUserDAOImpl注释

package com.cyrus.platform.dao.impl;

import org.springframework.stereotype.Component;

import com.cyrus.platform.dao.TCyrusUserDAO;
import com.cyrus.platform.model.TCyrusUser;

@Component("userDAO")
public class TCyrusUserDAOImpl implements TCyrusUserDAO {

    @Override
    public void save(TCyrusUser user) {
        System.out.println("the user is saved!");
    }
}

三、测试

package com.cyrus.platform.service;

import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.cyrus.platform.model.TCyrusUser;

public class TCyrusUserServiceTest {

    @Before
    public void setUp() throws Exception {
    }

    @Test
    public void test() {
        ApplicationContext context = new ClassPathXmlApplicationContext("classpath*:resources/spring/**/application*.xml");
        TCyrusUserService service = context.getBean("userService",TCyrusUserService.class);
        TCyrusUser user = new TCyrusUser();
        service.save(user);
    }

}
时间: 2024-10-13 00:03:41

spring3.2.5学习(二)——IoC注解配置的相关文章

Spring4学习笔记-通过注解配置bean

通过注解配置Bean TestObject.java package com.spring.beans.annotation; import org.springframework.stereotype.Component;; @Component public class TestObject { } UserController.java package com.spring.beans.annotation.controller; import org.springframework.st

Python学习(二) Django安装配置

上一节介绍了如何搭建Python的开发环境,这次介绍一下如何搭建Django的开发环境. 第一.下载Django Django跟Python的版本对应 Django version Python versions 1.4 2.5, 2.6, 2.7 1.7, 1.8 2.7 and 3.2, 3.3, 3.4 1.9 2.7, 3.3, 3.4, 3.5 这里我选择的是1.8.2,下载地址:https://www.djangoproject.com/download/ 第二.安装Django 下

spring ioc 注解配置

要注意spring 版本与jdk的兼容性 applicationContext-resource.xml: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" x

hadoop学习(二) 分布式搭建配置

1.组件规划 2.配置 2.1.配置core-site.xml <!--指定namenode所在机器的位置和访问交互端口号--> <property>     <name>fs.defaultFS</name>     <value>hdfs://dist1.lv.org:8020</value> </property> <!--指定Hadoop运行时的临时目录地址--> <property>   

Dubbo源码学习(二)

@Adaptive注解 在上一篇ExtensionLoader的博客中记录了,有两种扩展点,一种是普通的扩展实现,另一种就是自适应的扩展点,即@Adaptive注解的实现类. @Documented @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType.METHOD}) public @interface Adaptive { String[] value() default {}; } @Adapt

Spring顾问、IOC注解和注解增强

一.顾问 通知的一种表现方式(顾问包装通知/增强) Advisor: 名称匹配方法: NameMecthMethodPointcutAdvisor 1.定义了一个业务类 package cn.spring.advisor; /** * 业务接口 */ public interface IService { //业务方法 public void doSome(); public void say(); } 2.定义里一个增强类,实现了增强接口 package cn.spring.advisor;

spring学习3:spring ioc的纯注解配置

spring ioc的纯注解配置 一.分析 在上一篇博客中实现了xml+注解的ioc使用,我们发现,之所以离不开xml配置文件的原因是在该文件中有一句很关键的话,告知spring在创建容器时要扫描的包,依据扫描到的注解创建对象并放入容器中. <!-- 开启注解扫描,告知spring在创建容器时要扫描的包 --> <context:component-scan base-package="com.lyy.service"> </context:compone

spring学习2:基于注解+xml实现ioc和依赖注入

spring学习2:基于注解+xml实现ioc和依赖注入 一.在spring配置文件中开启spring对注解的支持 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&qu

Jetty学习二:配置概览-怎么配置Jetty

Jetty POJO配置 Jetty的核心组件是Plain Old Java Objects(POJOs):配置Jetty的大部分工作就是在Jetty POJOs上的初始化.装配和设置域的处理,你能通过以下的方式来实现:  1)直接通过Java代码初始化和装配Jetty对象.这个在后面Embedding Jetty讲. 2)用Jetty XML配置(一个控制反转(IoC)框架)初始化和装配Jetty对象.etc/jetty.xml文件是基本的Jetty XML配置文件,但有一些其它的etc/je