自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

城南花已开的博客

一枚程序猿

  • 博客(13)
  • 收藏
  • 关注

原创 Spring注解驱动开发(十):利用@Autowired 实现依赖注入

在我们进行 Web 应用开发的时候,大概率会使用 MVC 的三层架构,我们在表现层会调用服务层的服务,通常需要在控制器内组合对应的服务类(XXXService),而这些 Service 通常是全局唯一的,那我们在使用 Spring Framework 的时候,有没有什么方法可以通过 IoC 容器控制这些 Service 的声明周期,不再像传统的方式(在控制器内部 new 出 Service 的实例),而是从 IoC 容器中获取对应的单例 Service 对象呢?

2022-09-21 20:20:24 734 1

原创 浅谈 Netty 解决 TCP 粘包半包问题

TCP 粘包就是连续给对端发送两个或者两个以上的数据包,对端在一次收取中可能收到的数据包大于 1 个,小于 1 个,可能是几个包加上某个包的一部分,或者干脆就是几个完整的包在一起;当对端收到的数据只是一个数据包的一部分,这种情况叫做半包下面我用一张图来向你清晰的解释粘包,半包问题从这张图上,发送端发送了 ABC 和 DEF 两个 TCP 数据包,但是接收端不知道如何组装这两个数据包,于是就产生了上图中的两种组合方式,上面的将两个数据包合并的现象就是粘包,而下面的完整数据包被拆分的现象就是半包。

2022-09-17 17:10:26 1356

原创 Spring注解驱动开发(九):利用@Value与@PropertySource实现外部化配置注入

请你想象以下场景:加入你发布了一个项目,里面的一些系统属性信息都是以硬编码的形式存在的,过了一段时间,由于需求或者其它原因,你不得不修改这些属性信息,你必须重新打包部署整个项目…你是否经历过这样的场景,一种常见的解决方式就是将一些可配置的属性值抽离到配置文件中,以后我们只需要修改配置文件并重启项目就好了这篇文章我会详细介绍如何利用 @Value与 @PropertySource实现外部化配置@Value 的Bean属性注入原理和使用@PropertySource 的解析时机和使用。

2022-09-16 21:24:52 301

原创 Spring注解驱动开发(八):设置Bean初始化和销毁的回调

我们在正常向容器中注入Bean的时候,Bean会经历实例化,初始化以及一系列后置处理器的处理,那么我们能不能在Bean初始化和销毁的时候注册一些像生命钩子(Hook)的东西,在此处做一些定制化操作呢?利用 Spring Framework 提供的接口利用 Java 内置的注解利用 @Bean 的在我讲解这三种方法前,为了更好的演示效果,我先将示例代码写在此处定义一个普通的优惠券类/**System . out . println("Coupon 实例化完成");

2022-09-06 19:52:21 401

原创 Spring注解驱动开发(七):利用FactoryBean向容器中注入组件

利用 @ComponentScan+@Component 向容器中注入组件 (专栏第一篇文章讲述)利用 @Configuration+@Bean 向容器中注入组件 (专栏第二篇文章讲述)利用 @Import 向容器中注入组件利用 @Import 向容器中注入组件 (专栏第三篇文章讲述)在本篇文章中,我会向你讲述如何利用FactoryBean接口向Spring容器中注册BeanFactoryBean 接口的基本用啊FactoryBean的源码分析。

2022-09-02 21:21:24 335

原创 Spring注解驱动开发(六):利用@Import向容器中注入组件

利用向容器中注入组件 (专栏第一篇文章讲述)利用向容器中注入组件 (专栏第二篇文章讲述)利用@Import向容器中注入组件这三种方式是你使用Spring和阅读 Spring 各功能组件的代码必须要掌握的知识点,本篇文章我就会给你讲述 @Import 的用法按照惯例,我们先看一眼 @Import 注解的源码,并从它的注释了解一下它的作用/**** .......*/**}从整个类的注释我们可以看到,这个类就是向容器中放入候选Bean的,和@Configuration 类似。......

2022-08-25 20:36:36 165

原创 Spring注解驱动开发(五):利用@Lazy实现懒加载

Spring在启动时,默认会将非延迟的单实例的bean组件进行初始化,并缓存在Spring Ioc 容器中(我在专栏的上篇文章中介绍了Spring存储单例Bean的容器本质)综上所述:单实例bean默认随Spring上下文初始化而初始化❓ 试想一下,如果我们在容器中定制了大量的Bean,如果一次性的全部初始化,那么容器启动是不是会很慢呢,我们有什么方式可以解决这种问题呢?这时我们就可以使用@Lazy注解了,它可以实现对某个 bean 的延迟加载(即等待Bean被使用时才进行初始化)什么是懒加载。

2022-08-23 19:59:20 282

原创 Spring注解驱动开发(四):@Bean属性详解(指定Bean初始化和销毁方法)

在专栏的第二篇文章Spring注解驱动开发(二):使用@Configuration和@Bean向容器中注册组件中,我讲述了如何利用@Configuration+@Bean下个容器中注入Bean,那里我只是简单的讲述了如何使用@Bean,但是并未讲述它的一些’进阶用法’,这篇文章我就会通过讲解@Bean的属性来让你更加灵活的使用@Bean注解这篇文章,我向你讲述了**@Bean中的重要属性的作用以及使用技巧**...

2022-08-18 20:33:22 733

原创 Spring注解驱动开发(三):利用@Scope注解控制Bean的作用域

当我们利用 @Bean 注解向容器中注入组件时,默认是单例的(Spring 上下文环境会缓存这个对象),之后我们获取对象的时候,都是获取这个共享对象而非重新创建一个对象实例,但是有些时候我们希望每次从Spring Ioc 容器中获取对象时,都要创建一个新的实例对象,那么该如何处理呢?Spring 为我们提供了@Scope注解来设置组件的作用域.通过上面的讲解,我相信你对@Scope 来控制Bean 作用域有了一定了解,接下来我带你实战演示一下singleton与prototype。...

2022-08-14 21:32:20 151

原创 Spring注解驱动开发(二):使用@Configuration和@Bean向容器中注册组件

这篇文章,我向你传输了以下知识点@Configuration 注解的作用以及属性详解@Bean 注解基本使用@Bean 一定要和 @Configuration 使用吗当然本篇文章并没有展开介绍@Bean的属性设置,我将会在下篇文章向你介绍最后,我希望你看完本篇文章后,能够使用@Configuration + @Bean 实现组件注入Ioc容器的功能,也希望你指出我在文章中的错误点,希望我们一起进步,也希望你能给我的文章,原创不易!...

2022-08-13 20:45:53 307

原创 Spring Framework 学习概述

Spring 是目前主流的Java Web开发框架,Spring 由 Rod Johnson 创立,2004 年发布了 Spring 框架的第一版,其目的是用于简化企业级应用程序开发的难度和周期。Spring 是分层的 Java SE/EE 一站式轻量级开源框架。...

2022-08-12 21:28:56 182

原创 Spring注解驱动开发(一):使用@ComponentScan自定义扫描规则和组件注入规则

/ basePackages 的一个别名 @AliasFor("basePackages") String [ ] value() default {};};Class

2022-08-12 21:28:02 1087

原创 浅谈常见的网络IO模型

有了缓冲区,操作系统使用read函数从内核缓冲区复制到进程缓冲区,write函数从进程缓冲区复制到内核缓冲区,只有缓冲区中的数据达到一定的量再IO的系统,提升性能.而用户程序的IO操作,大部分情况下没有进行实际的IO操作,通过这种设置在网络数据未到达内核缓冲区之前都是非阻塞的,但是一旦数据从内核态拷贝到用户态依然是阻塞的,这种模式很少使用。常见的网络I/O 模型分为四种: 同步阻塞IO,同步非阻塞IO,I/O多路复用,异步非阻塞IO。,为了减少这种损耗的时间,还有损耗性能的时间, 所以出现了缓冲区。...

2022-08-10 19:29:42 682 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除