Spring实战之@Autowire注解用法详解

本文实例讲述了Spring实战之@Autowire注解用法。分享给大家供大家参考,具体如下:

一 配置

<?xml version="1.0" encoding="GBK"?>

<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-4.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-4.0.xsd">

<context:component-scan

base-package="org.crazyit.app.service,org.crazyit.app.dao"/>

</beans>

二 dao接口

BaseDao

package org.crazyit.app.dao;

public interface BaseDao<T>

{

void save(T e);

}

ItemDao

package org.crazyit.app.dao;

import org.crazyit.app.domain.*;

public interface ItemDao extends BaseDao<Item>

{

}

UserDao

package org.crazyit.app.dao;

import org.crazyit.app.domain.*;

public interface UserDao extends BaseDao<User>

{

}

三 dao实现类

BaseDaoImpl

package org.crazyit.app.dao.impl;

import org.crazyit.app.dao.*;

public class BaseDaoImpl<T> implements BaseDao<T>

{

public void save(T e)

{

System.out.println("程序保存对象:" + e);

}

}

ItemDaoImpl

package org.crazyit.app.dao.impl;

import org.springframework.stereotype.*;

import org.crazyit.app.dao.*;

import org.crazyit.app.domain.*;

@Component("itemDao")

public class ItemDaoImpl extends BaseDaoImpl<Item>

implements ItemDao

{

}

UserDaoImpl

package org.crazyit.app.dao.impl;

import org.springframework.stereotype.*;

import org.crazyit.app.dao.*;

import org.crazyit.app.domain.*;

@Component("userDao")

public class UserDaoImpl extends BaseDaoImpl<User>

implements UserDao

{

}

四 Bean

Item

package org.crazyit.app.domain;

public class Item

{

}

User

package org.crazyit.app.domain;

public class User

{

}

五 service接口

BaseService

package org.crazyit.app.service;

import org.springframework.stereotype.*;

import org.springframework.beans.factory.annotation.*;

import org.crazyit.app.service.*;

public interface BaseService<T>

{

void addEntity(T entity);

}

ItemService

package org.crazyit.app.service;

import org.springframework.stereotype.*;

import org.springframework.beans.factory.annotation.*;

import org.crazyit.app.service.*;

import org.crazyit.app.domain.*;

@Component

public interface ItemService extends BaseService<Item>

{

}

UserService

package org.crazyit.app.service;

import org.springframework.stereotype.*;

import org.springframework.beans.factory.annotation.*;

import org.crazyit.app.service.*;

import org.crazyit.app.domain.*;

@Component

public interface UserService extends BaseService<User>

{

}

六 Service实现类

BaseServiceImpl

package org.crazyit.app.service.impl;

import org.springframework.stereotype.*;

import org.springframework.beans.factory.annotation.*;

import org.crazyit.app.dao.*;

import org.crazyit.app.service.*;

public class BaseServiceImpl<T> implements BaseService<T>

{

@Autowired

private BaseDao<T> dao;

public void addEntity(T entity)

{

System.out.println("调用" + dao

+ "保存实体:" + entity);

}

}

ItemServiceImpl

package org.crazyit.app.service.impl;

import org.springframework.stereotype.*;

import org.springframework.beans.factory.annotation.*;

import org.crazyit.app.service.*;

import org.crazyit.app.domain.*;

@Component("itemService")

public class ItemServiceImpl extends BaseServiceImpl<Item>

implements ItemService

{

}

UserServiceImpl

package org.crazyit.app.service.impl;

import org.springframework.stereotype.*;

import org.springframework.beans.factory.annotation.*;

import org.crazyit.app.service.*;

import org.crazyit.app.domain.*;

@Component("userService")

public class UserServiceImpl extends BaseServiceImpl<User>

implements UserService

{

}

七 测试类

package lee;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import org.crazyit.app.service.*;

import org.crazyit.app.domain.*;

public class BeanTest

{

public static void main(String[] args)throws Exception

{

// 创建Spring容器

ApplicationContext ctx = new

ClassPathXmlApplicationContext("beans.xml");

UserService us = ctx.getBean("userService", UserService.class);

us.addEntity(new User());

ItemService is = ctx.getBean("itemService", ItemService.class);

is.addEntity(new Item());

}

}

八 测试

调用org.crazyit.app.dao.impl.UserDaoImpl@b7dd107保存实体:org.crazyit.app.domain.User@42eca56e调用org.crazyit.app.dao.impl.ItemDaoImpl@52f759d7保存实体:org.crazyit.app.domain.Item@7cbd213e

更多关于java相关内容感兴趣的读者可查看本站专题:《Spring框架入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

以上是 Spring实战之@Autowire注解用法详解 的全部内容, 来源链接: utcz.com/z/312237.html

回到顶部