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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值