注解@Component,@Service,@Controller,@Repository

四种同类的注释:

@Service服务层组件,用于标注业务层组件,表示定义一个bean,自动根据bean的类名实例化一个首写字母为小写的bean,例如Chinese实例化为chinese,如果需要自己改名字则:@Service("你自己改的bean名")。   

 

@Controller用于标注控制层组件(如struts中的action)

 

@Repository持久层组件,用于标注数据访问组件,即DAO组件

 

@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

 

 

@Service 

public class VentorServiceImpl implements iVentorService { 

}

 

@Repository 

public class VentorDaoImpl implements iVentorDao { 

 

 

 

 

接口引用:

在接口前面标上@Autowired和@Qualifier注释使得接口可以被容器注入,当接口存在两个实现类的时候必须指定其中一个来注入,使用实现类首字母小写的字符串来注入,如:

 

    @Autowired     

  

    @Qualifier("chinese")      

  

    private Man man;   

 

否则可以省略,只写@Autowired   。 

 

也可以这么用:

 

    @Resource(name = "paidAppServiceImpl")

    private BaseContentType paidAppService;

    @Resource(name = "inAppPurchaseServiceImpl")

    private BaseContentType inAppPurchaseService;

    @Resource(name = "physicalGoodsServiceImpl")

    private BaseContentType physicalGoodsService;

 

 

 

@Service特殊:

getBean 的默认名称是类名(头字母小写),如果想自定义,可以@Service(“aaaaa”) 这样来指定,这种

 

bean默认是单例的,如果想改变,可以使用@Service(“beanName”) @Scope(“prototype”)来改变。

 

可以使用以下方式指定初始化方法和销毁方法(方法名任意):

 

@PostConstruct

 

public void init() { 

 

 

@PreDestroy

 

public void destory() { 

 

 

}

猜你喜欢

转载自youyu4.iteye.com/blog/2231421