zoukankan      html  css  js  c++  java
  • 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等...

      以上总结的一个示例

      

     

     

     

     

     

  • 相关阅读:
    一个iOS图片选择器的DEMO(实现图片添加,宫格排列,图片长按删除,以及图片替换等功能)
    [小细节,大BUG]记录一些小问题引起的大BUG(长期更新....)
    利用runTime,实现以模型为主的字典转模型(注意与KVC的区别)
    项目总结(三)--- 关于版本控制器
    项目总结(一)--- 关于用到的设计模式
    EntityFramework与TransactionScope事务和并发控制
    Entity Framework与ADO.NET批量插入数据性能测试
    Mathtype公式位置偏上
    FreeSWITCH 加载模块过程解读
    FreeSWITCH调用第三方TTS 使用tts_commandline
  • 原文地址:https://www.cnblogs.com/xin1006/p/11869673.html
Copyright © 2011-2022 走看看