回顾Spring历史
1.spring1.0时代
用xml文件来配置,在xml文件来配置Bean,可以在xml文件中轻松的进行处理,但是在bena的数量越来越多的时候,xml的
配置也就会越来越复杂,所以为了解决bean的配置越来越多的情况下减轻xml文件的处理.spring2.0就诞生了
2.spring2.0时代
在xml文件上做了一定的优化,让配置看起来越来越简单,但是并没语完全解决xml冗余的问题
3.spring3.0时代;
可以使用spring提供的java注解来取代曾经xml配置上的问题,似乎我们曾经忘记了发生什么,spring变得
前所未有的简单,
4.spring4.0时代;
4.0 时代我们甚至连xml配置文件都不需要了完全使用java源码级别的配置与spring提供的注解就能快速的开发
spring应用程序, 但仍然无法改变Java Web应用程序的运行模式,我们仍然需要将war部署到Web Server 上,才能
对外提供服务。能否运行一个简单的main()方法就能启动一个Web Server 呢?Spring Boot 满足了我们的这种需求。
复习一下四个注解
@Configuration : 声明一个类作为配置类, 代替XML文件
@Bean: 声明在方法上,将方法的返回值加入Spring容器中,代替<Bean>标签
@Value: 属性注入
@PropertySource:引入外部的属性文件
我们来玩一下Java配置
在项目的pom.xml文件中追加一个数据库连接池的依赖
在项目的resources目录下创建配置文件 jdbc.properties
我们写一个配置Java类,读取jdbc.properties配置并且生成DataSource对象
最后我们可以在引用他的任意类中注入使用,我们这里是个例子就放到 HelloController中
启动时,我们发现有报错信息: java.lang.NoClassDefFoundError: org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseType
可以看出是缺少了 jdbc相关的包,故需要在pom.xml中增加一个jdbc的启动器
此时,我们用Debug方式启动,在HelloController类中打个断点,看一下连接是否注入成功,浏览器访问相应地址然后在后台可以看到对象已注入
以上是在Java代码配置中Spring写法,那么Spring Boot推荐怎么用呢,它又给我们优化简化到了什么程度?
在Spring Boot启动的时候,它会默认读取一个 application.properties的资源文件,这也是它唯一的配置文件,我们所有的配置以后都是写到这个里面
输入注解 @ConfigurationProperties 若提示 Spring Boot Configuration Annotation Processor not found in classpath 则就按照下图去掉复选框选中的即可
总结一下Spring Boot四种属性注入方式
@Autowired注入 符合我们的习惯,可能用的比较多;
构造方式注入
@Bean方法的形参注入
@Bean方法上再使用注解 @ConfigurationProperties(prefix="jdbc")
Spring Boot 官方已经提供了的启动器 13.5里面都能看到.
https://docs.spring.io/spring-boot/docs/2.1.10.RELEASE/reference/html/using-boot-build-systems.html#using-boot-starter
Spring Boot的默认配置文件 : application.properties 或 application.yml 二者只能选其一
SpringBoot 常用的默认配置 在官方的附录中,A 常用的应用程序属性
https://docs.spring.io/spring-boot/docs/2.1.10.RELEASE/reference/html/common-application-properties.html
比如我们将默认配置的web应用端口改为 8090,则只需要在application.properties中覆盖默认配置值 server.port=8090
从常用配置中可以看出,开发时我们需要将静态资源(图片,文本文件,JS)等放到 ,而在Spring Boot中是不支持写JSP页面的.
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/ # Locations of static resources.
大多数时候我们是放到 static目录下
而在浏览器中访问时,则不需要指定static这个路径
再次总结一下,在Spring Boot中开发Web应用的步骤
> pom文件引入 启动器
>application.properties 自定义配置或覆盖默认配置
>编写引导类
>编写自己的Controller等...
以上总结的一个示例