Spring
文章平均质量分 64
Spring
keeper42
Just do one thing and do it well! 要么别做,要做就做到最好!
展开
-
【Spring】Spring bean的生命周期
spring bean转载 2022-03-22 16:54:36 · 97 阅读 · 0 评论 -
2021-11-09
学习于极客时间Optional@Test public void optional() { //通过get方法获取Optional中的实际值 assertThat(Optional.of(1).get(), is(1)); //通过ofNullable来初始化一个null,通过orElse方法实现Optional中无数据的时候返回一个默认值 assertThat(Optional.ofNullable(null).orElse原创 2021-11-09 23:58:38 · 232 阅读 · 0 评论 -
@Autowired, @Resource与@Reference
1.@Autowiredorg.springframework.beans.factory.annotation.AutowiredSpringBoot项目中常用。简单来说就是引入由Spring容器管理的bean。2.@Resourcejavax.annotation.Resource作用相当于@Autowired,只不过@Autowired是byType自动注入,而@Resource默认byName自动注入。3.@Reference@Reference是dubbo的注解,也是注入,他一般注入原创 2021-11-09 18:46:43 · 389 阅读 · 0 评论 -
command line is too long shorten command line for test or also for spring boot default configuration
一、报错信息Error running 'Application':Command line is too long.Shorten command line for Application or also for Spring Boot default configuration.二、报错原因springboot项目启动命令过长三、解决办法点击项目启动配置项 -> shorten command line 选项选择 classpath file 或 java manifest 选原创 2021-05-24 12:00:33 · 1356 阅读 · 0 评论 -
Spring面试题之如何控制Bean初始化顺序
问题:如何在Spring中控制Bean初始化先后顺序?从Spring 2.0出现后,Spring提供@Order注解来定义了组件的加载顺序。@Order定义@Retention(value=RUNTIME)@Target(value={TYPE,METHOD,FIELD})@Documented public @interface Order这个标记包含一个value属性,类型是整型,如:1,2 等等。值越小拥有越高的优先级。默认的属性是Ordered.LOWEST_PRECEDEN原创 2021-02-19 11:21:03 · 688 阅读 · 0 评论 -
springcloud学习手册-Eureka
导读Springcloud Eureka服务治理一、服务治理:Springcloud EurekaEureka是springcloud Netflix服务套件中的一部分。它主要负责完成微服务架构中服务治理功能。包含基础设施,如下: 构建服务注册中心 服务注册与服务发现 Eureka的基础架构 Eureka的服务治理机制 Eureka的配置 二、Eureka的基础构架大家记住三个组件:服务消费者,服务提供者,服务注册中心三、服务治理机制..原创 2021-02-19 11:15:12 · 121 阅读 · 0 评论 -
使用Spring Session实现Spring Boot水平扩展
本文使用Spring Session实现了Spring Boot水平扩展,每个Spring Boot应用与其他水平扩展的Spring Boot一样,都能处理用户请求。如果宕机,Nginx会将请求反向代理到其他运行的Spring Boot应用上,如果系统需要增加吞吐量,只需要再启动更多的Spring Boot应用即可。本文选自《Spring Boot 2精髓:从构建小系统到架构分布式大系统》一书。Spring Boot应用通常会部署在多个Web服务器上同时提供服务,这样做有很多好处: 单个应.原创 2021-02-19 11:10:18 · 276 阅读 · 1 评论 -
使用Spring进行读写分离
背景我们一般应用对数据库而言都是"读多写少",也就说对数据库读取数据的压力比较大,有一个思路就是说采用数据库集群的方案,其中一个是主库,负责写入数据,我们称之为:写库;其它都是从库,负责读取数据,我们称之为:读库;那么,对我们的要求是:1、 读库和写库的数据一致;2、 写数据必须到写库;3、 读数据必须到读库;方案解决读写分离的方案有两种:应用层解决和中间件解决。应用层解决:优点:1、 多数据源切换方便,由程序自动完成;2、 不需要引入中间件;3、原创 2021-02-18 16:54:43 · 135 阅读 · 1 评论 -
Spring中配置数据源的4种形式(含有如何在spring框架中解决多数据源的问题)
不管采用何种持久化技术,都需要定义数据源。Spring中提供了4种不同形式的数据源配置方式:spring自带的数据源(DriverManagerDataSource),DBCP数据源,C3P0数据源,JNDI数据源。1.spring自带的数据源DriverManagerDataSourceXML代码:[html]view plaincopy<beanid="dataSource" class="org.springframework.jdbc.da...原创 2021-02-18 16:36:42 · 512 阅读 · 0 评论 -
Spring cache
Spring cache简介Spring cache基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 Redis),而是一个对缓存使用的抽象,通过在既有代码中添加少量它定义的各种 annotation,即能够达到缓存方法的返回对象的效果。Spring cache的缓存技术还具备相当的灵活性,不仅能够使用 SpEL(Spring Expression Language)来定义缓存的 key 和各种 condition,还提供开箱即原创 2021-02-04 16:44:30 · 128 阅读 · 0 评论 -
Spring分布式事务
分布式事务是指事务的参与者、支持事务的服务器、资源管理器以及事务管理器分别位于分布系统的不同节点之上,在两个或多个网络计算机资源上访问并且更新数据,将两个或多个网络计算机的数据进行的多次操作作为一个整体进行处理。如不同银行账户之间的转账。对于在项目中接触到JTA,大部分的原因是因为在项目中需要操作多个数据库,同时,可以保证操作的原子性,保证对多个数据库的操作一致性。一丶问题由来昨日我们庖丁解牛,深入DataSourceTransactionManager源码,解开事务与动态数据源切换之谜,然而在原创 2021-02-03 11:35:33 · 492 阅读 · 0 评论 -
【Spring】Spring中配置数据源的4种形式
spring自带的数据源(DriverManagerDataSource),DBCP数据源,C3P0数据源,JNDI数据源。1.spring自带的数据源DriverManagerDataSourceXML代码:<beanid="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"><propertyname="driver...原创 2021-02-03 11:10:17 · 463 阅读 · 0 评论 -
一步步完成Maven+SpringMVC+SpringFox+Swagger整合示例
本文给出一个整合Maven+SpringMVC+SpringFOX+Swagger的示例,并且一步步给出完成步骤。本人在做实例时发现 http://blog.csdn.net/zth1002/article/details/46927187 中,Spring必须是4.0以上版本。目标在做项目的时候,有时候需要提供其它平台(如业务平台)相关的HTTP接口,业务平台则通过开放的HTTP接口获取相关的内容,并完成自身业务~提供对外开放HTTP API接口,比较常用的是采用Spring M.原创 2021-01-28 17:51:43 · 230 阅读 · 1 评论 -
SpringBoot笔记之四:持久化数据之Mysql
这一篇文章来介绍下如何通过starter访问Mysql数据库、进行CRUD以及自定义的数据操作。添加Maven依赖为了访问mysql数据,需要引入如下依赖 spring-boot-starter-data-jpa: JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。 mysql-connector-java: 访问Mysql数据库的驱动。 初始化Mysq.原创 2021-01-26 16:17:30 · 194 阅读 · 0 评论 -
SpringBoot笔记之三:用Thymeleaf渲染页面
这一篇文章来介绍下如何通过官方支持的Thymeleaf模板渲染Web页面。Thyemeleaf Logo添加Maven依赖在pom.xml文件中添加spring-boot-starter-thymeleaf依赖。SpringBoot Thymeleaf StarterThymeleaf配置默认情况下,SpringBoot会从 src/main/resources/templates 文件夹目录中找模板文件。可以通过在application.properties文件中添加如下配原创 2021-01-26 16:16:23 · 1365 阅读 · 0 评论 -
SpringBoot笔记之二:用Velocity渲染页面
这一篇文章来介绍下如何通过Velocity模板渲染Web页面。Velocity图标SpringBoot对Velocity支持版本一定要注意! SpringBoot 1.3.x版本官方支持Velocity SpringBoot 1.4.x版本支持Velocity,但是官方标记为@deprecated SpringBoot 1.5.x版本官方不支持Velocity 本次示例代码使用1.3.8.RELEASE。SpringBoot 1.3.8.RELEASE原创 2021-01-26 16:15:53 · 1522 阅读 · 0 评论 -
SpringBoot笔记之一:简介、创建和运行
SpringBoot代码结构SpringBoot Intellij Idea结构 src/main/java - 主程序目录 src/main/resources - 主程序配置文件 src/test/java - 测试目录 SpringBoot启动代码Application类里面有main方法,该类被@SpringBootApplication注解,标志是SpringBoot的入口。SpringBoot启动类SpringBoot REST接口 @原创 2021-01-26 16:15:03 · 73 阅读 · 0 评论 -
【Spring】Spring事务管理
Spring事务管理原创 2020-10-14 15:47:56 · 114 阅读 · 0 评论 -
学习DAO设计模式(第八、九、十天)
(注:2020.06.17—2020.06.19 三天时间学习DAO设计模式大概花了五六个小时)一、程序的分层:显示层+控制层+业务层+数据层(DAO)+数据库一个业务层的操作需要与多个数据层操作共同完成,数据层完成的是一个个原子性操作,所有的操作业务在业务层中完成。数据层:即数据访问层(Data Access Object,DAO),是专门进行数据库院子操作的。业务层:即业务对象(Business Object,BO),又称服务层(Service),业务层核心目的是调用多个数据层.原创 2020-06-20 22:49:15 · 278 阅读 · 0 评论 -
学习Spring(第八天)Spring Interview Questions
https://www.baeldung.com/spring-interview-questions原创 2020-06-18 17:24:25 · 159 阅读 · 0 评论 -
学习Spring(第七天)
一、Spring IoC的初始化过程:Spring AOP就是基于动态代理的,如果要代理的对象,实现了某个接口,那么Spring AOP会使用JDK Proxy,去创建代理对象,而对于没有实现接口的对象,就无法使用 JDK Proxy 去进行代理了,这时候Spring AOP会使用Cglib ,这时候Spring AOP会使用 Cglib 生成一个被代理对象的子类来作为代理,如下图所示:二、Spring AOP 和 AspectJ AOP 有什么区别?Spring AOP 属于运行时增强原创 2020-06-18 15:14:40 · 186 阅读 · 0 评论 -
学习Spring——JDBC Template(第六天)
JDBC Template使用Spring组件JDBC Template简化持久化操作课程介绍: 基本操作 JDBC Template概念 优缺点分析 环境配置课程目标: 了解Spring组件JDBC Template 能使用JDBC Template进行持久化操作 帮助自己学习Hibernate、MyBatis等ORM框架先修知识: JDBC Spring IOC,Spring AOP MySQL环境:JDK1.8为了简化持久化操作, Spring在JDBC API之.上提供了JD原创 2020-06-17 11:47:23 · 132 阅读 · 0 评论 -
学习Spring——使用AspectJ实现AOP(第五天)
使用AspectJ实现AOP注解方式XML方式AspectJ是一个基于Java语言的AOP框架Spring2.0后新增了对AspectJ切点表达式支持@AspectJ是AspectJ1.5新增功能,通过JDK5注解技术,允许直接在Bean类中定义切面新版本Spring框架,建议使用AspectJ方式开发AOP使用AspectJ需要导入Spring AOP和AspectJ相关jar包spring-aop-4.2.4.RELEASE.jarcom.springsource.o原创 2020-06-15 23:44:21 · 176 阅读 · 0 评论 -
学习Spring(第四天)
Spring AOP增强类型(只支持方法层面的增强)AOP联盟为通知Advice定义了org.aopalliance.aop.Interface.AdviceSpring按照通知Advice在目标类方法的连接点位置,可以分为五类:1.前置通知 org.springframework.aop.MethodBeforeAdvice 在目标方法执行前实施增强2.后置通知 org.springframework.aop.AfterReturningAdvice 在目标方法执行后实施增强3.环绕通原创 2020-06-14 22:42:52 · 117 阅读 · 0 评论 -
Spring学习——AOP与代理(第三天,6月13日)
AOP,面向切面编程原创 2020-06-13 23:07:39 · 119 阅读 · 0 评论 -
学习Spring——Bean生命周期(第二天)
Bean生命周期一、生命周期流程图: Spring Bean的完整生命周期从创建Spring容器开始,直到最终Spring容器销毁Bean,这其中包含了一系列关键点。 若容器注册了以上各种接口,程序那么将会按照以上的流程进行。下面将仔细讲解各接口作用。二、各种接口方法分类Bean的完整生命周期经历了各种方法调用,这些方法可以划分为以下几类:1、Bean自身的方法 : 这个包括了Bean本身调用的方法和通过配置文件中<bean>的init-metho.转载 2020-06-10 23:25:03 · 159 阅读 · 0 评论 -
开始学习Spring(第一天)
学习Spring(第一天)Spring IOC与AOP耦合IoCDIAOPSpring模块Spring IOC与AOPIOC与AOP是Spring框架的两大特性,学习Spring之前不得不先了解下这两大特性。耦合犹记得上软件工程课时,老师强调软件系统之间要“高内聚、低耦合”。这里就简单记录下耦合。耦合具有双面性。一方面,高耦合的代码难以复用、维护、理解,并且不易修复bug,因为修复一个bug就可能出现其他bug这种情况。另一方面,一定程度的耦合又是必须的,完全没有耦合的代码可能无法完成功能。因此,为原创 2020-06-09 11:39:19 · 183 阅读 · 0 评论