1

项目创建及结构分析

  1. 第一步:打开项目新建窗口(快捷键ctrl+n), 搜索spring,选择spring starter 项目
  2. 第二步:填写项目基本信息。
  3. 第三步:选择Spring Boot版本。
  4. 第四步:项目从maven配置中指定的服务器去下载起步依赖,假如指定版本的springboot项目以前创建过,它会默认先从本地库查找--(假如本地库没有,则从远程库去下载)。
  5. 项目创建成功以后,包视图(Package Explorer)结构--image
    所有的类和配置文件都是创建好项目以后,由STS工具帮我们自动创建的。

项目启动过程分析

  • 找到项目的入口类(使用@SpringBootApplication注解描述),然后运行启动类,检测启动过程。
  • SpringBoot 项目在启动时,基于注解描述,进行配置并扫描指定包以及子包中的类进行加载,然后检测类上是否有Spring框架中指定的注解描述。
  • 注意:当指定包以及子包中的类上有框架中指定的注解描述时--将类交给Spring框架中的BeanFactory工厂接口的实现类对象。

项目业务初步实现及测试

  • 业务实现:通过Spring框架进行Bean对象的管理实现。
  • 第一步:创建一个DefaultCache类,存储到src/main/java目录,然后交给spring管理。
  • 第二步:添加sringboot 测试类,进行bean的获取及测试,要放在src/test/java目录中。
  • 第三步:代码设计及运行分析
  • 第四步:为对象设计作用域,设置延迟加载,设置生命周期方法。
  • 第五步:通过测试类测试作用域,延迟加载,生命周期方法。
  • Spring框架管理Bean对象的优势:--
    -- Spring 是一个资源整合框架(Framework),通过spring可将很多资源(自己写的对象或第三方提供的对象...)整合在一起,然后进行科学应用,以便更好的对外提供服务。

Spring Boot 重难点分析

  1. Spring boot 是框架--搭建项目基础骨架
  2. Spring boot 核心优势--启动依赖,自动配置,系统检查
  3. Spring boot 项目的创建方式-- https://start.spring.io
  4. Spring boot项目启动时,Bean的初始化过程--查找,加载,读和存储配置,创建和存储实例对象
  5. Spring boot 项目启动时,Bean对象的依赖注入过程--标记,查找,注入
  6. Spring 框架中的Bean对象的特性--延迟加载,作用域,生命周期方法

注解

  • @Autowired 用于描述类中属性或相关方法
  • @SpringBootTest 工程中的单元测试类需要使用此注解进行描述
  • @Scope("prototype") 每次从Spring容器获取对象都会创建一个新的实例
  • @Lazy 此注解用于告诉spring框架,它描述的类的实例,假如暂时用不到,就不要先创建
  • @PostConstruct 注解描述的方法会在对象构建以后执行,由于执行一些初始化操作
  • @PreDestroy 注解用于描述Bean对象生命周期方法中的销毁方法,此方法会在对象销毁之前执行

断点

*断点是用来进行调试的时候方便程序停在某一处,以便寻找程序错误。需要在调试的环境下才可用。
*断点快捷键
F5:setp into (可用于跳入某个特定的方法)
F6:step over(用于跳过程序中的每一行代码)
F7:step return(跳出当前的方法回到程序的开始处)
F8:从当前行到下一个断点处,如果没有下一个,则运行完整个程序

SpringBoot 常见问题分析

*NoUniqueBeanDefinitionException:非唯一bean对象的定义--说明这个Spring容器中bean的类型有不止一个
*NoSuchBeanDefinitionException:Spring容器中没有这个Bean的定义

Spring Boot 整合连接池

*用户通过DataSource对象的getConnection()方法,获取一个连接。
假如池中有连接,则直接将连接返回给用户。
假如池中没有连接,则会调用Dirver对象的connect方法从数据库获取,拿到连接以后,可以将连接在池中放一份,然后将连接返回给调用方。
*dataSource对象是Spring框架(基于底层的自动配置-DataSourceAuto)来创建的
*dataSource.getClass().getName()--dataSource变量指向的对象的类型

常见问题分析

*易错点

a. 类名与注解名相同
image

b. DataSource接口包名引入


xiaowei
1 声望1 粉丝