最近用spring boot写了一个工程,没有spring.properties ,也没有yml配置文件。对应的代码如下,我知道Autowired是自动注入的,问题是:jdbcTemplate是什么时候实例化的? 请各位大神指点。
import java.util.List;
import java.util.Map;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class DruidTestController {
  private static final Logger logger = LoggerFactory.getLogger(DruidTestController.class);     @Autowired
    private JdbcTemplate jdbcTemplate;     @RequestMapping("hello")
    public List<Map<String, Object>> hello() {
    
        List<Map<String, Object>> list = jdbcTemplate.queryForList("SELECT user,password FROM myblog.user ", new Object[]{});
        logger.info("查询用户信息。");
        return list;
    }
}

解决方案 »

  1.   

    需要的时候就会帮你自动实例化。类似bean。
      

  2.   

    我用的阿里的druid,只是配置了个druid的配置文件,写了一个druid的辅助类,我想请教的是,springboot根据什么去初始化的 这个类。  是根据什么配置文件的什么信息去初始化的这个类。还是其他什么机制?
      

  3.   

    启动过的时候spring容器会扫描注解,根据一定顺序实例化对象,然后注入
    注入这块用的技术只要就反射
      

  4.   

    你理解一下spring的ioc控制反转的概念
      

  5.   

    private JdbcTemplate jdbcTemplate; 打上断点,看看程序调用栈;