spring的配置介绍和bean的管理方式
Posted hzhiping-0814
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring的配置介绍和bean的管理方式相关的知识,希望对你有一定的参考价值。
前言
不管说什么框架,我们总是难以逃脱该框架的配置文件,所以接下来我们就要讲述一下spring的配置文件的相关标签的配置,另外会介绍一下spring的bean的管理方式(XML文件中)。
spring的配置
id属性和name属性
id:给bean起个名字,在约束中采用 ID 的约束,唯一,必须以字母开始,可以使用字母、数字、连字符、下划线、句话、冒号,不能出现特殊字符。
<bean id=”bookAction”>
name:给bean起个名字,没有采用 ID 的约束。name出现特殊字符,如果bean没有id的话,name可以当作id来使用。
比如整合struts的时候,<bean name="/loginAction">。
scope属性
scope属性是bean的作用范围。下面我们详细介绍一下该属性的几个值。
singleton
默认值,单例的。
prototype
多例的。
request
在web的项目中,spring创建一个bean的对象,然后将对象存到request域中。
session
在web的项目中,spring创建一个bean的对象,然后将对象存到session域中。
globalSession
web项目中,应用在 Porlet 环境.如果没有 Porlet 环境那么 globalSession 相当于 session。
bean的生命周期的配置
通过配置标签上的 init-method 作为 Bean 的初始化的时候执行的方法,配置 destroy-method 作为 Bean 的销毁的时候执行的方法。 销毁方法想要执行,需要是单例创建的 Bean 而且在工厂关闭的时候,Bean 才会被销毁。
spring的bean的管理方式[XML配置方式]
创建相关的bean
在介绍相关的知识点之前,我们先介绍一下需要用到的两个bean:Car和User
Car.java
1 /** 2 * Copyright (C), 2015-2018, [email protected] 3 * Title:Car 4 * Author:Administrator 5 * Date:2018/7/5 17:02 6 * Description: 汽车类 7 * History: 8 * <author> <time> <version> <desc> 9 * 作者姓名 修改时间 版本号 描述 10 */ 11 package com.hzhiping.bean; 12 13 public class Car { 14 private String name; 15 private String color; 16 17 public Car() { 18 } 19 20 public String getName() { 21 return name; 22 } 23 24 public void setName(String name) { 25 this.name = name; 26 } 27 28 public String getColor() { 29 return color; 30 } 31 32 public void setColor(String color) { 33 this.color = color; 34 } 35 36 @Override 37 public String toString() { 38 return "Car{" + 39 "name=‘" + name + ‘‘‘ + 40 ", color=‘" + color + ‘‘‘ + 41 ‘}‘; 42 } 43 }
User.java
1 /** 2 * Copyright (C), 2015-2018, [email protected] 3 * Title:User 4 * Author:Administrator 5 * Date:2018/7/5 17:03 6 * Description: 用户类 7 * History: 8 * <author> <time> <version> <desc> 9 * 作者姓名 修改时间 版本号 描述 10 */ 11 package com.hzhiping.bean; 12 13 public class User { 14 private String name; 15 private int age; 16 private Car car; 17 18 public User() { 19 System.out.println("user对象无参构造方法..."); 20 } 21 22 public User(String name, Car car) { 23 System.out.println("User(String name, Car car)..."); 24 this.name = name; 25 this.car = car; 26 } 27 28 public User(Car car, String name) { 29 System.out.println("User(Car car, String name)..."); 30 this.car = car; 31 this.name = name; 32 } 33 34 public User(int age, Car car) { 35 System.out.println("User(int age, Car car)..."); 36 this.age = age; 37 this.car = car; 38 } 39 40 public String getName() { 41 return name; 42 } 43 44 public void setName(String name) { 45 this.name = name; 46 } 47 48 public int getAge() { 49 return age; 50 } 51 52 public void setAge(int age) { 53 this.age = age; 54 } 55 56 public Car getCar() { 57 return car; 58 } 59 60 public void setCar(Car car) { 61 this.car = car; 62 } 63 64 @Override 65 public String toString() { 66 return "User{" + 67 "name=‘" + name + ‘‘‘ + 68 ", age=" + age + 69 ", car=" + car + 70 ‘}‘; 71 } 72 73 // 设置初始化方法和销毁方法 74 public void init(){ 75 System.out.println("初始化方法..."); 76 } 77 public void destroy(){ 78 System.out.println("销毁方法..."); 79 } 80 }
spring的bean的创建方式
空参构造创建
在配置文件中添加相关的配置
编写测试类
静态工厂创建实例
创建静态工厂的方法
添加配置
编写测试方法
实例工厂创建实例
创建实例工厂的方法
添加配置文件
编写测试方法
spring的bean的属性的几种注入方式
使用set的方式进行注入
构造函数注入
p名称方式注入
spel方式注入
复杂类型注入
spring的分配置文件的开发
spring的分配置文件开发,实际上就是允许多个配置文件,使用spring的分配置文件开发,有两种方式。
在类中同时加载多个配置文件
在一个配置文件中包含另一个配置文件,最终只加载一个配置文件
坚壁清野
以上是关于spring的配置介绍和bean的管理方式的主要内容,如果未能解决你的问题,请参考以下文章
spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段