Spring Autowired的一个小问题

最近学习Spring框架:在我自己写代码的过程中,发现,如果@Autowired注解用在属性上的话,最好要将该属性setter的方法去掉,起初的原因是我想测试一下当有两个Bean的类型(Type)一致是,需要让@Autowired配合使用@Qualifier才能找到唯一的bean。首先看一下我的xml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">

<bean id="cat222" class="com.luo.pojo.Cat">
<property name="catName" value="hao"/>
</bean>

<bean id="dog111" class="com.luo.pojo.Dog">
<property name="dogName" value="yue1"/>
</bean>

<bean id="dog" class="com.luo.pojo.Dog"> <!-- 重点看这里,有两个Dog类型的bean -->
<property name="dogName" value="yue"/>
</bean>


<bean id="people" class="com.luo.pojo.People" autowire="byType">
<property name="name" value="luo"/>
</bean>

<context:annotation-config/>

</beans>

然后我利用@Autowired 配合 @Qualifier 对dog进行自动装配:

阅读更多
DNS基本工作原理

1 需要DNS 提供服务

我们知道,在计算机网络中,因为主机之间是需要通信的,所以很重要的一件事是找到一种方式去唯一性地识别一台主机,所以就有了主机MAC地址和IP地址,MAC地址又称为物理地址,计算机对于MAC地址和IP地址当然是乐于接受的,因为它们无非就是一串数字嘛,通过转换成01比特流能很好的在计算机之间传递这种MAC地址信息和IP地址信息。但计算机终究是给人用的,特别是对计算机不熟悉的普通大众来说,人们是记不住那么多的IP地址的,所以就出现了另一种主机名,如www.example1.com,就是大家平时所说的网址嘛,访问一个网站 www.example1.com,其实就是访问一台主机名为 www.example1.com 的服务器,这种识别主机的方式更容易被人们所接受。

尽管人们喜欢这种便于记忆的主机名标识方式,但是我们知道在计算机网络中,数据的传递还是要通过定长的,有着层次结构的IP地址,为了解决这两种不同的需求,我们就需要一种能进行主机名到IP地址转换的服务,这就需要**域名系统DNS(Domain Name System)**提供服务。

阅读更多
传统加密技术

CANS3-CLASSICAL ENCRYPTION TECHNIQUES(传统加密技术)

1 SYMMETRIC CIPHER MODEL

1.1 五个基本成分

对于一个对称加密的过程,有五个基本成分:

  • 明文 Plaintext 原始的可理解的消息或数据,是加密算法的输入
  • 加密算法 Encryption algorithm 加密算法是对明文进行各种代替(substitutions)置换(transformation),以产生不可理解的密文
  • 密钥 Secret key 密钥也是加密算法的输入,独立于明文和算法,算法根据所用的特定密钥而产生不同的输出,算法所进行的各种代替和置换也依靠密钥。
  • 密文 Ciphertext 密文是加密算法的输出,直观看起来不可理解其代表的意识,依赖于明文密钥,对于给定的相同的明文,不同的密钥将产生不同的密文。
  • 解密算法 Decryption algorithm 本质上是加密算法的逆运算,输入为密文和密钥,输出原始明文

而对称密码对称的意思就是加密使用的密钥和解密使用的密钥是相同的

阅读更多
CIA and OSI SECURITY ARCHITECTURE

写这篇文章的原因:考完试后经过半个月的补觉和躺平,本菜狗终于想起来要学习了(不是),《密码编码学与网络安全》简称CANS之前其实看过一二章,然后再次看的时候,完全不记得以前看过了(淦),算了算了重新开始看吧,写博客单纯记录自己学习的过程和尽量避免学完就忘(dalao们不要见笑,原谅我这个菜狗的水平hh),如有错误,敬请指出!!!

阅读更多
计算机网络运输层

本文巨长且干货极少,阅读请谨慎!!!!

1 运输层协议概述

1.1 为什么需要运输层?

和之前介绍的层次一样,在开始之前,我们需要先知道为什么需要运输层

我们知道现代操作系统,都是支持"多任务"的操作系统。“多任务"简单的说就是操作系统可以同时运行多个任务,比如你可以一边在用浏览器上网,一边打开网易云听歌,一边用Word赶作业。

那么操作系统如何实现这种”多任务“呢?答案就是操作系统轮流让各个任务交替执行,但是因为CPU太快了,给我们的感受就是所有任务都在同时执行。对于操作系统而言,一个任务就是一个进程(Process),

这里提到进程,我们知道,计算机网络体系结构中的物理层数据链路层以及网络层它们要解决的问题是在网络互联的情况下,如何实现主机到主机的通信

然而,真正在计算机网络中进行的通信是位于通信两端主机中的进程之间的通信,是一台主机中的一个进程和另一台主机中的另一个进程在交换数据(也就是通信)。

阅读更多
计算机网络物理层

1 物理层的基本概念

需要物理层需要做些什么?

需要指出,物理层考虑的是怎样才能在连接各种计算机的传输媒体传输数据比特流,而不是指某种具体的传输媒体。

可以说,物理层提供了一层抽象,上层的数据链路层和网络层只需要知道物理层传输的是比特流,而不去考虑物理层用何种方式去传输比特流。

为什么要提供这样的一层抽象?因为现有的计算机网络中的硬件设备和传输媒体的种类非常繁多,而通信手段也有很多不同的方式,物理层的作用正是要尽可能地屏蔽掉这些传输媒体和通信手段的差异和复杂性,使得物理层上面的数据链路层感觉不到这些差异,这样就可以使得数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体和通信手段是什么,大大降低了复杂性。

此外,数据在计算机内部多采用并行传输方式,而数据在通信线路上的传输方式一般都是串行传输,也就是逐个比特按照时间顺序传输,因此,物理层还要完成传输方式的转换

阅读更多
计算机网络数据链路层

数据链路层的设计初衷

我们知道物理层的线路上传输的是我们的比特流,物理层的线路由传输介质与通信设备组成。比特流在物理线上的传输肯定会存在误差。这样我们就引入了数据链路层在物理层之上,在数据链路层中采用差错检测差错控制流量控制等方法,向网络层提高高质量的数据传输服务。

注意这里说的是高质量,而不是可靠,数据传输的可靠仍然要靠我们传输层的TCP协议实现。数据链路层提供了差错检测机制,相对于物理层来说,提高了数据传输的质量。

这样数据链路层就可以看成了网络层物理层之间的一层抽象,属于计算机网络中的低层。

阅读更多
hexo melody主题配置邮箱链接

首先到图标网上找一个图标,别人访问你的博客点击该图标就可以利用mailto给你发邮件。

这里我选择的是envelope图标,点击图标进去,点击Start Using This Icon

阅读更多
函数依赖,码和范式

1 函数依赖X\rightarrowY

1.1 什么是函数依赖?

函数依赖X\rightarrowY: X和Y都是属性(集合)

  • 一个X的值,只对应一个Y
  • 一个Y,可能对应不止的X

X\rightarrowY 的意思是X函数决定Y,或Y函数依赖于X,X是Y的决定元素

阅读更多
《计算机网络》网络层

网络真是太复杂了…感觉很多东西单独理解起来很简单,但合起来内容就变得很复杂,懂完过一阵子就忘记了。

最近计算机网络课学到了网络层了,本文仅是自己对课本学习内容的一个整理,方便期末复习(其实也没怎么整理,本文巨长,阅读请谨慎!!!)

参考书籍是 谢希仁 《计算机网络》第七版

阅读更多