Spring 通过构造方法注入对象
Spring 通过构造方法注入对象
今天在看一段代码的时候,觉得很奇怪如下:
public class NitroEnclaveServer {
          
   
	private static final Logger LOG = LoggerFactory.getLogger(NitroEnclaveServer.class);
	private final Listener clientListenerPort;
	private final ListenerConsumer listenerConsumer;
	public NitroEnclaveServer(Listener clientListenerPort, ListenerConsumer listenerConsumer) {
          
   
		this.clientListenerPort = clientListenerPort;
		this.listenerConsumer = listenerConsumer;
	}
} 
直接通过构造方法就可以注入这个对象了????下面做了一个测试
验证
一个实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TestEntity {
          
   
    private String name;
    private String value;
} 
配置类:
@Configuration
public class MyConfig {
          
   
    @Bean
    public TestEntity testEntity() {
          
   
        return new TestEntity("zhangsan","23");
    }
} 
service类:
public interface TestEntityService {
          
   
} 
@Service
public class TestEntityServiceImpl implements TestEntityService {
          
   
} 
测试类:
@RestController
public class TestController {
          
   
    private final TestEntity testEntity;
    private final TestEntityService testEntityService;
    public TestController(TestEntity testEntity, TestEntityService testEntityService) {
          
   
        this.testEntityService = testEntityService;
        this.testEntity = testEntity;
    }
} 
启动打断点:
发现是可以获取的,并且不用加上 @Autowired 注解。
下面验证一下是不是从容器中获取的:
@RestController
public class TestController {
          
   
    @Autowired
    private ApplicationContext applicationContext;
    private final TestEntity testEntity;
    private final TestEntityService testEntityService;
    public TestController(TestEntity testEntity, TestEntityService testEntityService) {
          
   
        this.testEntityService = testEntityService;
        this.testEntity = testEntity;
    }
    @PostMapping("/test")
    public String testDemo(@RequestBody TestEntity entity) {
          
   
        return entity.getName();
    }
} 
发请求: 发现: 发现是从容器里面获取的。
上一篇:
			            通过多线程提高代码的执行效率例子 
			          
			          下一篇:
			            记录 mybatis-plus 使用问题 
			          
			        
