今天我来学习学习Spring中Bean。

在Spring中原来还有标签啊,它相当于标签的老爸,老爸可以有很多个儿子,但是老爸只有一个哦。

也就是说一个标签内可以有多个标签,每个标签代表一个java实例。

定义时,需要注意两个属性,一个是id,一个是class。

id是标签的唯一标示符,容器对其的访问、管理、注入都通过这个属性来完成,所以它也是唯一的。

class呢,是该bean的具体实现类,因为Spring要通过class来完成对bean的实例化,所以其必须是完整的类名,不能是接口哦!

还可以用name属性为其增加一个别名。

当Spring创建一个bean实例时,还为其指定了特定的作用域:

singleton:单例模式,使用singleton定义的bean只有一个实例。

prototype:原型模式,每次通过容器的getbean方法去调用prototype定义的bean时,都会创建一个实例。

request:每次http请求都会产生一个bean实例。

seesion:与request相似,每次http session请求时,都会产生一个bean实例。

global session:(这个不太懂啊)每个全局的http session对应一个bean实例。

不指定作用域时,默认为singleton模式。

举个例子:

session和request作用域的范围很相似,不同的是session指每次Http Session请求都会有效,而request则是每次Http请求都有效。

为此,我们需要有两种配置方式:采用Listener或者Filter配置。

当使用Servlet2.4以上规范的Web容器时,可在Web容器下的web.xml文件中增加如下配置,该Listerner负责为request作用域负责:

1

2 ...3

4 org.springframework.web.context.request.RequestContextListener

5

6 ...7

当使用2.4以下规范的就不能用这个配置了,只能改为Filter配置:

1

2 ...3

4 requestContextFilter

5 org.springframework.web.filter.RequestContextFilter

6

7 requestContextFilter

8 /*

9

10

11 ...12

一旦配置上面二者之一,就可以在Spring配置文件中使用request和session作用域了。

如果需要为Bean属性值是容器中另一个bean实例,需要使用元素,使用该元素会有两个属性:

bean:引用不在同一个XML文件中的另一个bean实例的id属性值。

local:引用在同一个XML文件中其他bean实例的id属性值。举一个例子:

1

2

3

4

5

6

7

它还有一种简洁的写法:

1

2

3

4

此处简洁了ref元素,将它并入了property的属性中,当然这么写也就不区分ref元素中的local和bean属性了。

此外,如果bean的属性值是个集合的话,则需要使用集合元素,、、和分别用来设置类型为List、Set、Map和Properties的集合属性值。

下面我们来改造一个之前写的com/sep/basic/service/impl/Lenovo类,将其中包含多个集合属性。

1 packagecom.sep.basic.service.impl;2

3 importjava.util.List;4 importjava.util.Map;5 importjava.util.Properties;6 importjava.util.Set;7

8 importcom.sep.basic.service.Computer;9 importcom.sep.basic.service.Key;10

11 public class Lenovo implementsComputer{12 //下面是集合属性

13 private Listsize;14 privateSet price;15 private Mapkey;16 privateProperties health;17 //private Key key;18

19 //各属性的setter方法

20 public void setSize(Listsize) {21 this.size =size;22 }23

24

25 public voidsetPrice(Set price) {26 this.price =price;27 }28

29

30 public void setKey(Mapkey) {31 this.key =key;32 }33

34

35 public voidsetHealth(Properties health) {36 this.health =health;37 }38

39 @Override40 public voiduseKey() {41 System.out.println(size);42 System.out.println(price);43 System.out.println(key);44 System.out.println(health);45 }46

47 }

下面来看一下我们的applicationContext.xml的配置代码:

1 <?xml version="1.0" encoding="UTF-8"?>

2

4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

5 xmlns:p="http://www.springframework.org/schema/p"

6 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

7

8

9

10

11

12

13 17'

14 21'

15 30'

16

17

18

19

20

21

22 普通的字符串

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47 正常

48 正常

49

50

51

52

53

54

55

这样我们就成功地将所有集合属性赋值了。

java ssh cpu_初学Java ssh之Spring 第四篇相关推荐

  1. 【Rookie初学Java】关于初学Java遇到的一些具体问题

    初学Java的一些问题 1 关于jdk jre jvm的关系 jdk>jre>jvmjdk即Java Development Kit是java语言的软件开发工具包,它是给开发者使用的,其中 ...

  2. java 弱智语言,初学java的一些弱智有关问题.麻烦

    当前位置:我的异常网» J2SE » 初学java的一些弱智有关问题.麻烦 初学java的一些弱智有关问题.麻烦 www.myexceptions.net  网友分享于:2013-12-29  浏览: ...

  3. 【Spring第四篇】DI注入以及c、p命名空间

    DI注入以及c.p命名空间 编写实体类 Address @Data @AllArgsConstructor @NoArgsConstructor public class Address {priva ...

  4. 初学Java,这些框架你要掌握

    随着Java面向对象语言的流行以及多层架构应用的出现,使得应用程序的可复用性得到了大大的提高,框架这个东西也在应用程序中开始出现,并得到了广泛的使用.所以千锋武汉老师为大家收集了目前较受欢迎的Java ...

  5. 【java毕业设计】基于javaEE+SSH+oracle的土地档案管理系统设计与实现(毕业论文+程序源码)——土地档案管理系统

    基于javaEE+SSH+oracle的土地档案管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+SSH+oracle的土地档案管理系统设计与实现,文章末尾附有本毕业设 ...

  6. java 用户登录模块_Java SSH框架系列:用户登录模块的设计与实现思路

    1.简介 用户登录模块,指的是根据用户输入的用户名和密码,对用户的身份进行验证等.如果用户没有登录,用户就无法访问其他的一些jsp页面,甚至是action都不能访问. 二.简单设计及实现 本程序是基于 ...

  7. ganymed ssh-2 for java,用于java连接问题的Ganymed SSH(Ganymed SSH for java connect issue)

    用于java连接问题的Ganymed SSH(Ganymed SSH for java connect issue) 我们正在使用Ganymed-SSH库并在与另一台机器进行SSH时遇到此错误. [r ...

  8. 【java毕业设计】基于javaEE+SSH+mysql的码头船只出行及配套货柜码放管理系统设计与实现(毕业论文+程序源码)——码头船只出行及配套货柜码放管理系统

    基于javaEE+SSH+mysql的码头船只出行及配套货柜码放管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+SSH+mysql的码头船只出行及配套货柜码放管理系统 ...

  9. java ssh文件下载_Java使用SSH从远程服务器下载文件

    前言 Telnet.FTP.POP3在网络传输的过程中都是采用明文,容易被监听或者遭到到man-in-the-middle的攻击方式攻击.而SSH为远程登陆会话和其他的网络服务提供安全协议,通过加密数 ...

最新文章

  1. HttpClient(4.5.x)正确的使用姿势
  2. 大厂的 404 页面都长啥样?看到最后一个,我笑了...
  3. bash-shell中使用的特殊字符总结
  4. K8S创建role命令示例
  5. 防抖与节流方案_如何理解js的防抖与节流
  6. centos 设置时间为北京时间
  7. WPF 分享一种设置程序保存配置文件的方法
  8. 激活windows 7 RTM方法
  9. 光盘显示0字节可用_松下PLC编程软件FPWIN Pro7.4.0.0
  10. 海思3559万能平台搭建:YUV422的踩坑记录
  11. python基础知识学完之后再如何学_已学完 Python 基础知识,应该如何继续提升算法能力,以及如何过渡到机器学习?...
  12. excel文件修复工具_免费的PDF转Word软件有哪些?各种文件格式转换工具推荐
  13. meri oracle view_Oracle Siebel CRM
  14. 与卡耐基梅隆大学博士交流笔记
  15. error: failed to push some refs to ‘xx.git‘ hint: Updates were rejected because the tip of your curr
  16. 修改linux中@后的名字
  17. C++11实现多线程电梯运行
  18. 案例-站狼云品智美站助力必信空调中国制造领先品牌...
  19. 拼多多获得搜索词推荐 API
  20. 基于arm9的mbus集中器采集器持续改进

热门文章

  1. 面试官 | SpringBoot 中如何实现异步请求和异步调用?
  2. C# 操作线程的通用类[测试通过]
  3. Pandas 统计分析基础 笔记4 任务4.4 使用分组聚合进行组内计算
  4. 操作系统进程调度算法图解(FCFS、轮转、SPN、SRT、HRRN、反馈)
  5. php加载autoload,php自动加载类__autoload()的方法_PHP教程
  6. mysql连接数详解_MySQl 修改最大连接数详解
  7. 反序列化的时候出现eof exception_FastJson序列化时候出现了$ref?还不赶紧学习下...
  8. 2020年秋计算机科学导论,南开大学《主干课1-计算机科学导论》2020秋主干课考试...
  9. js读写php文件,在js中如何读取本地文件
  10. Win7旗舰版打不开任务管理器怎么办