java学习day15

SpringBoot框架

springboot是spring家族中的一个全新框架,用来简化spring程序的创建和开发过程。在以往我们通过SpringMVC+Spring+Mybatis框架进行开发的时候,我们需要配置web.xml,spring配置,mybatis配置,然后整合在一起,而springboot抛弃了繁琐的xml配置过程,采用大量默认的配置来简化我们的spring开发过程。SpringBoot化繁为简,使开发变得更加的简单迅速。

约定大于配置

约定大于配置,也可以叫做约定优于配置(convention over configuration),也称作按约定编程,是一种软件设计范式,指在减少软件开发人员需做决定的数量,获得简单的好处,而又不失灵活性。

Spring Boot正是在这样的一个背景下被抽象出来的开发框架,它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。

配置maven

下载maven

Maven – Download Apache Maven

maven的conf文件夹下有setting.xml文件,打开后将本地仓库路径修改为自己的仓库路径,保存后退出。

打开设置->构建、执行、部署->构建工具->Maven

修改maven主路径、用户设置文件、本地仓库

点击应用后确定

搭建springboot项目

语言选择java

系统选择maven

点击创建

创建项目后的项目结构

在pom.xml中导入依赖

依赖从下方网址获取

Maven Repository: Search/Browse/Explore (mvnrepository.com)

添加到<dependencies></dependencies>标签中

点击下载依赖

下载完依赖以后,在main文件夹的java文件夹下创建包,示例中是org.example包,在该包下创建application类,用于启动项目

添加@SpringBootApplication注释

调用SpringApplication.run()方法

参数是application类的类对象和args

启动项目,出现图中所示后,证明项目配置成功

倒数第二行表示所用端口为8080

8080有时会显示被占用

此时需要修改端口号

在resources文件夹下创建application.yml文件

如图输入指定修改端口号重启即可

SpringIOC(控制反转)

用于管理项目中java bean的生命周期

在项目运行阶段,程序中需要很多的对象来完成整体的业务,SpringIOC把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。

SpringIOC负责创建对象,管理对象,装配对象,配置对象,并且管理这些对象的整个生命周期。由IOC容器管理的那些组成应用程序的对象我们就叫它Bean,Bean就是由Spring容器初始化,装配及管理的对象

Springboot提供了很多注解标注类用于实现IOC

@Controller @RestController(访问层)

@Service(业务类) @Repository(Dao数据访问)

@Component(其他功能类) @Bean

在类前使用以上注释便可以实现控制反转

其中@Service不能代替@Controller

DI(Dependancy Injection依赖注入)

IOC和和DI描述的是同一件事情,只不过角度不一样

在Spring框架负责创建Bean对象时,动态的将依赖对象注入到Bean组件

当类A需要类B的对象时,仅需要在类A中声明类A依赖类B即可

而不需要通过代码主动获取类B的对象

使用@Autowirerd注释

SpringBean的作用域

1.singleton 单例模式 一个对象 默认使用单例模式

2.prototype 原型模式 每次需要都来一个新的对象

3.request web项目中请求作用域 每次request都会创建一个新的对象

4.session 每次会话都会创建一个新的对象

5.GlobalSession 全局的

SpringBean的生命周期

1.根据配置情况调用Bean构造方法或工厂方法实例化Bean

2.利用依赖注入完成Bean中所有属性值的配置注入

3.如果Bean实现了BeanNameAware接口,则Spring调用Bean的setBeanName()方法传入当前Bean的id值

4.如果Bean实现了BeanFactoryAware接口,则Spring调用setBeanFactory()方法传入当前工厂实例的引用

5.当一个Bean实现了ApplicationContextAware接口并在Spring容器中被实例化时,Spring容器会自动调用该Bean的setApplicationContext方法,并将应用程序上下文ApplicationContext作为参数传递进来

6.BeanPostProcessor是Spring框架中的一个重要接口,它允许开发者在Spring容器创建和初始化bean的过程中,对bean进行自定义处理。这包括 在bean实例化之后,属性设置之前(postProcessBeforeInitialization方法),以及在bean初始化之后(postProcessAfterInitialization方法)执行自定义逻辑。Spring容器在创建和初始化每一个bean时,都会调用CustomBeanProcessor中的两个方法,允许进行自定义处理。

在第六步执行的是postProcessBeforeInitialization方法

7.InitializingBean是Spring框架中的一个接口,它定义了一个afterPropertiesSet方法。当Spring容器创建bean的所有属性都被设置完成后,会调用这个方法。

8.如果在配置文件中通过initMethod属性制定了初始化方法,则调用该初始化方法

initMethod指定的方法必须是void类型,并且不接受任何参数

9.如果BeanPostProcessor和Bean关联,则Spring将调用该接口的初始化方法,postProcessAfterInitialization()。此时,Bean已经可以被应用系统使用了。

  • 30
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值