
Spring框架学习
文章平均质量分 60
Spring
失败尽是常态Z
主观能动性,复盘总结者,快速学习者。
展开
-
Spring boot 常用注解
GetMapping("")、@PostMapping("")、@PutMapping("")、@DeleteMapping("/{userId}"):分别对应HTTP的GET、POST、PUT、DELETE请求方法,将它们绑定到UserController中的相应方法上,其中@DeleteMapping还使用了@PathVariable注解来获取请求参数中的userId值。@RequestMapping("/users"):将"/users"路径映射到UserController类上。原创 2023-05-06 23:28:22 · 561 阅读 · 0 评论 -
Spring Beans的理解
因此,总体而言,在Spring Boot中使用`@Component`和使用其他专属的注解效果相同,主要取决于个人的编程习惯和习惯。上述代码中,`UserDao`和`UserService`都使用了`@Component`注解标识其为Spring Bean,并且在`UserService`中使用了`@Autowired`注解实现了`UserDao`的依赖注入。另外,我们还可以使用`@Configuration`和`@Bean`注解来定义Java Config类型的配置类和其中的bean。原创 2023-05-06 17:15:31 · 904 阅读 · 0 评论 -
简单的例子来理解Spring Aop的基本概念
(4)`aop:around`元素则将该切面的拦截动作设置为"环绕通知",将前置、后置通知(切面操作)和目标方法合并在一个方法体中,并控制是否执行目标方法或直接返回结果,同时在合适的时候添加新的流程处理。其中第一行表示启用注解扫描,并设置扫描包路径为`com.example`,第二行则表示启用AspectJ注解的AOP自动代理机制,第三行定义的是之前实现的日志切面`LogAspect`类的Bean。(2)在`aop:config`标签内声明了一个aspect(切面),引用了声明好的`logAspect`。原创 2023-05-06 16:29:17 · 661 阅读 · 0 评论 -
Spring事务的传播行为
假设我们有一个Service类包含了两个方法:methodA()和methodB(),其中methodA()需要开启一个事务,如果methodB()内部发生了异常,则整个事务需要回滚。然而,在复杂的应用程序中,可能会涉及到多个事务操作嵌套在一起,这就需要我们考虑事务的传播行为。否则,方法将开启一个新的事务运行,并在自己的事务内执行。:方法支持当前事务,也就是说,如果当前存在一个事务,就在该事务的上下文中执行方法;:方法不支持事务,如果有一个存在的事务,将被挂起,在方法执行期间,不会使用该事务上下文。原创 2023-05-06 15:58:17 · 793 阅读 · 0 评论 -
Spring事物的隔离级别
比如,当需要避免并发访问时出现幻读等问题时,就应该使用SERIALIZABLE隔离级别(即最严格的隔离级别);在Spring中,事务的隔离级别指的是一个事务在与其他事务隔离的程度。:该隔离级别下,所有事务依次执行,就像串行执行一样。:该隔离级别下,事务执行期间可以多次读取同一记录,并保证得到的结果是一致的。:该隔离级别下,事务只能读取已经提交的数据,可以避免脏读问题,但仍可能出现不可重复读和幻读问题。:该隔离级别下,事务可以读取其他事务尚未提交的数据,会出现脏读、不可重复读和幻读等问题。原创 2023-05-06 15:33:20 · 910 阅读 · 0 评论 -
Spring事务失效场景
注解标记的方法A中调用了另外一个没被事务管理的方法B并在B中发生异常,就会导致整个事务失效,并不会出现回滚。原因在于,Spring事务实现是通过生成代理对象并对应用程序进行拦截来实现的,而内部调用的方法不通过代理对象的方式调用,因此不会触发事务机制。当一个事务方法抛出异常时,如果异常被捕捉住(try/catch块中),那么Spring就无法获取到异常信息,并且整个事务也就无法回滚。如果一个被注解的类不是由Spring容器来创建的,比如手动new对象,那么该类的事务注解则不会生效。属性来改变这种默认的行为。原创 2023-05-05 12:56:53 · 938 阅读 · 1 评论 -
Spring的事务原理
当调用转账方法时,Spring会对其进行拦截并开启一个新事务,如果整个过程没有发生异常,则提交事务。事务的原理:当一个方法加上@Transactional注解,spring会基于这个类生成一个代理对象并将这个代理对象作为bean,当使用这个bean中的方法时,如果存在@Transactional注解,就会将事务自动提交设为false,然后执行方法,执行过程没有异常则提交,有异常则回滚。声明式事务的优点:不需要编程,减少了代码的耦合,在配置文件中配置并在目。一致性:事务执行的前后,数据完整性保持一致。原创 2023-05-05 12:34:38 · 536 阅读 · 0 评论 -
Spring的核心
是实现的方式)将之前程序中需要手动创建对象的操作,交由 Spring 框架来实现,创建对象的操作被反转到了 Spring 框架。对象的生命周期由 Spring 来管理,直接从 Spring 那里去获取一个对象。Spring 框架创建 Bean 对象时,动态的将依赖对象注入到 Bean 组件中,实现依赖对象的注入。容器:包含并管理应用对象的生命周期,就好比用桶装水,spring就是桶,而对象就是水。spring是为了简化企业开发而生的,使得开发变得更加优雅和简洁。(IOC控制反转是实现的思想,原创 2023-04-24 22:00:06 · 450 阅读 · 0 评论 -
Spring的优势
MyBatis是另一个开源的ORM框架,它通过将SQL语句和Java代码分离,在代码层面上实现了数据访问层与业务逻辑层的分离,从而简化了系统设计。2、Spring框架之外还存在一个构建在核心框架之上的庞大生态圈,它将Spring扩展到不同的领域,如Web服务、REST、移动开发以及NoSQL。8、Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部。7、Spring的ORM和DAO提供了与第三方持久层框架的的良好整合,并简化了底层的数据库访问。原创 2023-04-25 20:55:26 · 487 阅读 · 0 评论 -
Spring、SpringMvc、SpringBoot的区别
3、由于Spring的配置非常复杂,各种XML、JavaConfig、servlet处理起来比较繁琐,为了简化开发者的使用,从而创造性地推出了springBoot框架,默认优于配置,简化了springMvc的配置流程;但他们的基础都是Spring的Ioc、Aop等。2、springBoot框架相对于springMvc框架来说,更专注于开发微服务后台接口,不开发前端视图,同时遵循默认优于配置,简化了插件配置流程,不需要配置xml,相对springmvc,大大简化了配置流程。原创 2023-04-25 21:27:12 · 281 阅读 · 0 评论 -
简单的例子来理解Spring IoC的基本概念
在应用程序启动时,Spring会自动创建这些bean,并将它们注入到其它需要的对象中,从而构建出完整的对象图谱。这些操作都是由Spring IoC框架所控制的,我们不必亲自去关心对象的创建和依赖的处理,大大提高了代码的可维护性和可扩展性。在这个例子中,我们使用Spring的IoC容器来管理Person和Address对象。我们通过XML配置文件定义这些对象(称为bean),并告诉Spring如何将它们组合起来创建一个Person实例。原创 2023-04-24 21:51:49 · 95 阅读 · 0 评论