spring注入有继承关系的类 您所在的位置:网站首页 java注解可以继承吗 spring注入有继承关系的类

spring注入有继承关系的类

2024-07-13 14:30| 来源: 网络整理| 查看: 265

1.通过配置文件

Java代码   收藏代码 0                     

 

 

2.通过注解(只需要在子类上加注解,父类上不用加会自动注入)

package com.jeremy.spring.genericityDI; public class BaseRepository{ }

  BaseService:

复制代码 package com.jeremy.spring.genericityDI; import org.springframework.beans.factory.annotation.Autowired; public class BaseService { @Autowired------//这里告诉IOC容器自动装配有依赖关系的Bean protected BaseRepository baseRepository;--------//这里是子类继承依赖关系 public void add(){ System.out.println("add.............."); System.out.println(baseRepository); } } 复制代码

  2新建一个泛型类:

  User:

package com.jeremy.spring.genericityDI; public class User { }

  3新建BaseRepository和BaseService的子类  UserRepository:

复制代码 package com.jeremy.spring.genericityDI; import org.springframework.stereotype.Component; @Component public class UserRepository extends BaseRepository{ } 复制代码

  UserService:

复制代码 package com.jeremy.spring.genericityDI; import org.springframework.stereotype.Service; @Service public class UserService extends BaseService{ } 复制代码

  4:在Spring的配置文件中配置自动装配带有注解的Bean:  

复制代码 复制代码

5测试代码和结果  测试代码:

@Test public void test() { ApplicationContext actx=new ClassPathXmlApplicationContext("Bean-genericity-di.xml"); UserService userService=(UserService) actx.getBean("userService"); userService.add(); }

测试结果:

add.............. com.jeremy.spring.genericityDI.UserRepository@16546ef

从结果看,虽然子类没有建立依赖关系,但userRepository实例还是被实例化了,就证明了父类的依赖关系,子类是可以继承的

其实这里也可以说明,就算父类不是被IOC容器管理,但是建立关系时添加了@Autowired注解,父类的关系会被继承下来

1.通过配置文件

Java代码   收藏代码 0                     

 

 

2.通过注解(只需要在子类上加注解,父类上不用加会自动注入)

package com.jeremy.spring.genericityDI; public class BaseRepository{ }

  BaseService:

复制代码 package com.jeremy.spring.genericityDI; import org.springframework.beans.factory.annotation.Autowired; public class BaseService { @Autowired------//这里告诉IOC容器自动装配有依赖关系的Bean protected BaseRepository baseRepository;--------//这里是子类继承依赖关系 public void add(){ System.out.println("add.............."); System.out.println(baseRepository); } } 复制代码

  2新建一个泛型类:

  User:

package com.jeremy.spring.genericityDI; public class User { }

  3新建BaseRepository和BaseService的子类  UserRepository:

复制代码 package com.jeremy.spring.genericityDI; import org.springframework.stereotype.Component; @Component public class UserRepository extends BaseRepository{ } 复制代码

  UserService:

复制代码 package com.jeremy.spring.genericityDI; import org.springframework.stereotype.Service; @Service public class UserService extends BaseService{ } 复制代码

  4:在Spring的配置文件中配置自动装配带有注解的Bean:  

复制代码 复制代码

5测试代码和结果  测试代码:

@Test public void test() { ApplicationContext actx=new ClassPathXmlApplicationContext("Bean-genericity-di.xml"); UserService userService=(UserService) actx.getBean("userService"); userService.add(); }

测试结果:

add.............. com.jeremy.spring.genericityDI.UserRepository@16546ef

从结果看,虽然子类没有建立依赖关系,但userRepository实例还是被实例化了,就证明了父类的依赖关系,子类是可以继承的

其实这里也可以说明,就算父类不是被IOC容器管理,但是建立关系时添加了@Autowired注解,父类的关系会被继承下来



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有