Spring 실전의 @Autowire 메모 사용법 상세 설명
한 구성
이단 인터페이스
BaseDao
package org.crazyit.app.dao;
public interface BaseDao
{
void save(T e);
}
ItemDao
package org.crazyit.app.dao;
import org.crazyit.app.domain.*;
public interface ItemDao extends BaseDao-
{
}
UserDao
package org.crazyit.app.dao;
import org.crazyit.app.domain.*;
public interface UserDao extends BaseDao
{
}
삼dao 구현 클래스
BaseDaoImpl
package org.crazyit.app.dao.impl;
import org.crazyit.app.dao.*;
public class BaseDaoImpl implements BaseDao
{
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-
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
implements UserDao
{
}
4Bean
Item
package org.crazyit.app.domain;
public class Item
{
}
User
package org.crazyit.app.domain;
public class User
{
}
5 서비스 인터페이스
BaseService
package org.crazyit.app.service;
import org.springframework.stereotype.*;
import org.springframework.beans.factory.annotation.*;
import org.crazyit.app.service.*;
public interface BaseService
{
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-
{
}
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
{
}
6 서비스 구현 클래스
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 implements BaseService
{
@Autowired
private BaseDao 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-
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
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@42eca56eorg를 호출합니다.crazyit.app.dao.impl.ItemDaoImpl@52f759d7엔티티 저장: org.crazyit.app.domain.Item@7cbd213e
더 많은 자바 관련 내용에 관심이 있는 독자들은 본 사이트의 주제를 볼 수 있다.,,,,,,,
본고에서 서술한 바가 모두의 자바 프로그램 설계에 도움이 되기를 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.