发表于: 2022-04-30 17:49:09

0 331


今天学习了spring :


 Spring的优势:

AOP:面向切面编程,属于OOP(面向对象编程#多态、继承、封装)的延续,OOP是一种垂直的继承体系。

⽅便解耦,简化开发

通过Spring提供的IoC容器,可以将对象间的依赖关系交由Spring进⾏控制,避免硬编码所造成的

过度程序耦合。⽤户也不必再为单例模式类、属性⽂件解析等这些很底层的需求编写代码,可以更

专注于上层的应⽤。

AOP编程的⽀持

通过Spring的AOP功能,⽅便进⾏⾯向切⾯的编程,许多不容易⽤传统OOP实现的功能可以通过

AOP轻松应付。

声明式事务的⽀持

@Transactional

可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式⽅式灵活的进⾏事务的管理,提⾼

开发效率和质量。

⽅便程序的测试

可以⽤⾮容器依赖的编程⽅式进⾏⼏乎所有的测试⼯作,测试不再是昂贵的操作,⽽是随⼿可做的

事情。

⽅便集成各种优秀框架

Spring可以降低各种框架的使⽤难度,提供了对各种优秀框架(Struts、Hibernate、Hessian、

Quartz等)的直接⽀持。

降低JavaEE API的使⽤难度

Spring对JavaEE API(如JDBC、JavaMail、远程调⽤等)进⾏了薄薄的封装层,使这些API的使⽤

难度⼤为降低。


源码是经典的 Java 学习范例

Spring的源代码设计精妙、结构清晰、匠⼼独⽤,处处体现着⼤师对Java设计模式灵活运⽤以及对

Java技术的⾼深造诣。它的源代码⽆意是Java技术的最佳实践的范例。

Spring核⼼容器(Core Container) 容器是Spring框架最核⼼的部分,它管理着Spring应⽤中

bean的创建、配置和管理。在该模块中,包括了Spring bean⼯⼚,它为Spring提供了DI的功能。

基于bean⼯⼚,我们还会发现有多种Spring应⽤上下⽂的实现。所有的Spring模块都构建于核⼼

容器之上。


⾯向切⾯编程(AOP)/Aspects Spring对⾯向切⾯编程提供了丰富的⽀持。这个模块是Spring应

⽤系统中开发切⾯的基础,与DI⼀样,AOP可以帮助应⽤对象解耦。

数据访问与集成(Data Access/Integration)

Spring的JDBC和DAO模块封装了⼤量样板代码,这样可以使得数据库代码变得简洁,也可以更专

注于我们的业务,还可以避免数据库资源释放失败⽽引起的问题。 另外,Spring AOP为数据访问

提供了事务管理服务,同时Spring还对ORM进⾏了集成,如Hibernate、MyBatis等。该模块由

JDBC、Transactions、ORM、OXM 和 JMS 等模块组成。

Web 该模块提供了SpringMVC框架给Web应⽤,还提供了多种构建和其它应⽤交互的远程调⽤⽅

案。 SpringMVC框架在Web层提升了应⽤的松耦合⽔平。

Test 为了使得开发者能够很⽅便的进⾏测试,Spring提供了测试模块以致⼒于Spring应⽤的测

试。 通过该模块,Spring为使⽤Servlet、JNDI等编写单元测试提供了⼀系列的mock对象实现。


bean标签的属性:

   scope:定义bean的作用范围,取值有:

      singleton:单例,IOC容器中只有一个该类的对象,默认值

      prototype:多例,每次调用都是一个新的对象

      prototype:request、session

   init-method:创建bean后调用

   destory-method:bean被销毁前调用

set注入使用property标签 

构造器注入使用constructor-arg标签


名称                                                               说明

--------------------------------------------------------------------

@Null                                                  被标注的元素必须为 null

@NotNull                                              被标注的元素必须不为 null

@AssertTrue                                        被标注的元素必须为 true

@AssertFalse                                      被标注的元素必须为 false

@Min(value)                                         被标注的元素必须是一个数字,其值必须大于等于指定的最小值

@Max(value)                                         被标注的元素必须是一个数字,其值必须小于等于指定的最大值

@DecimalMax(value)                           被标注的元素必须是一个数字,其值必须大于等于指定的最大值

@DecimalMin(value)                           被标注的元素必须是一个数字,其值必须小于等于指定的最小值

@size                                                 被标注的元素的大小必须在指定的范围内

@Digits(integer,fraction)            被标注的元素必须是一个数字,其值必须在可接受的范围内;integer 指定整数精度,fraction 指定小数精度

@Past                                                被标注的元素必须是一个过去的日期

@Future                                            被标注的元素必须是一个将来的日期

@Pattern(value)                                被标注的元素必须符合指定的正则表达式





遇到问题:没有


收货:巩固了spring的知识


返回列表 返回列表
评论

    分享到