梦相随1006

版权归 梦相随1006 所有,未经 https://www.cnblogs.com/xin1006 作者许可,严禁转载

导航

Spring Boot 2.1.10 学习笔记(2)

 

 回顾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等...

  以上总结的一个示例

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2019-11-15 21:27  梦相随1006  阅读(183)  评论(0编辑  收藏  举报