当使用框架时发现有的对象不用new,不用Bean也可以自动注入例如
对象1在启动类中bean了,er对象2并没有.为了探究问题,利用方法查看当主启动类启动时,有哪些对象被bean在框架中
package com.jt;
import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
import java.util.Arrays;
@EnableFeignClients
@SpringBootApplication
public class ConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class,args);
}
/**
* 创建RestTemplate对象,我们
* 可以基于此对象进行远端服务
* 调用,此对象封装了远程服务调
* 用的协议和相关方法.
* @return
*/
// @Bean
// public RestTemplate restTemplate(){
// return new RestTemplate();
// }
@Bean
public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
return args -> {
System.out.println("Let's inspect the beans provided by Spring Boot:");
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
System.out.println(beanName);
}
};
}
}
结果为
也就是对象2其实已经被框架创建