@PropertySource(value = "classpath:jdbc.properties")
@Import(SpringDataSourceConfig.class)
1.) 根据id属性获取,需要强转类型
@Bean(name = {"xx"})
DataSource dataSource = (DataSource) context.getBean("xx");
2.)根据class属性获得对象,要确保同一种类型的bean只能配置一个
//类.class
DataSource dataSource = (DataSource) context.getBean(DataSource.class);
3.)根据bean元素的 id+class属性获得对象,要求id和类型一定要匹配正确
User user3 = context.getBean("user", User.class);
SpringBoot是什么?相当于一个工具,开发效率高,无需手动配置,内部帮内置好,能自动配置,有内嵌的tomcat;部署效率高【pom、jar、war】。
用于将HTTP get请求映射到特定处理程序的方法注解,@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。
用于将HTTP post请求映射到特定处理程序的方法注解,@PostMapping是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写
注解在一个类上添加@Controller注解,表明了这个类是一个控制器类。
@ResponseBody表示方法的返回值直接以指定的格式写入Http response body中,而不是解析为跳转路径。格式的转换是通过HttpMessageConverter中的方法实现的,因为它是一个接口,因此由其实现类完成转换。如果要求方法返回的是json格式数据,而不是跳转页面,可以直接在类上标注@RestController,而不用在每个方法中标注@ResponseBody,简化了开发过程。
@Controller:在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面。若返回json等内容到页面,则需要加@ResponseBody注解
@RestController = @Controller + @ResponeBody
相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面
parent、插件不能删掉
某个模块依赖的集合。eg:starter-web、starter-tomcat…
当前项目的配置文件,能在里面修改端口…
与.properties都是配置文件,但是写法不同,语法不同。比xml,语法更加简洁,比.properties文件更具有层次。
写代码的话要在这个启动类所在的包下写,(比如写dao、sercive这些)这样子才能扫描得到。
@springBootApplication注解是一个复合注解,主要有三个注解发挥了作用
扫描当前启动类所在的包,让spring boot自动扫描 @SpringBootConfiguration所在类的同级包以及它的子包中的配置。
开启自动配置。(加载配置类,可以让spring boot根据当前应用项目所依赖的jar自动配置项目的相关配置。)
标记当前类为配置类,就像@Configuration
简单来说就是用注解来对一些常规的配置做默认配置,简化xml配置内容,使你的项目能够快速运行。
(在autoconfigure包下)META-IF下的spring.factories。
SpringBoot通过@EnableAutoConfiguration注解开启自动配置,对jar包下的spring.factories文件进行扫描,这个文件中包含了可以进行自动配置的类,当满足@Condition注解指定的条件时,便在依赖的支持下进行实例化,注册到Spring容器中。
用自己话说:会扫描jar包下面的spring.factories文件,这个文件里配置了很多支持的制动配置类型;只要我们在项目中写到我们要用的,把依赖写好了,就会自动帮我们创建并放入容器中。
加上exclude=xxAutoConfiguration.class排除某一个自动配置
//排除连接池的自动配置
@SpringBootApplication(exclude = DatasourceAutoConfiguration.class)
某个模块依赖的集合