1. 准备工作
先创建一个JavaBean,也就是实体对象类
这里的例子是:
包:com.bingchunmoli.bean.Person
属性: private String lastName;private Integer age;private String gender;private String email;
生成get,set方法,tostring方法,无参构造以及有参构造,
代码:
package com.bingchunmoli.bean;
/**
* @ClassName Person
* @Description JavaBean
* @Author 冰彦糖
* @Data 2020/2/20 1:36
* @version 1.0
**/
public class Person {
private String lastName;
private Integer age;
private String gender;
private String email;
public Person(String lastName, Integer age, String gender, String email) {
this.lastName = lastName;
this.age = age;
this.gender = gender;
this.email = email;
}
public Person(String lastName, Integer age, String gender) {
this.lastName = lastName;
this.age = age;
this.gender = gender;
}
public Person(String lastName, String email, String gender) {
this.lastName = lastName;
this.email = email;
this.gender = gender;
}
public Person() {
}
@Override
public String toString() {
return "Person{" +
"lastName='" + lastName + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
", email='" + email + '\'' +
'}';
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
System.out.println("setageing:"+age);
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
- javabean的配置
<bean class="com.bingchunmoli.bean.Person" id="person">
<property name="lastName" value="张三"></property>
<property name="gender" value="男"></property>
<property name="age" value="13"></property>
<property name="email" value="[email protected]"></property>
</bean>
<!-- 注册一个Person对象,Spring会自动创建这个Person对象-->
<!-- 一个bean可以注册一个组件(对象,类)-->
<bean class="com.bingchunmoli.bean.Person" id="person1" p:age="13" name="person1" p:email="test" p:gender="无" p:lastName="test张三">
</bean>
<!-- 有参构造器赋值-->
<bean id="person2" class="com.bingchunmoli.bean.Person">
<constructor-arg name="lastName" value="张"></constructor-arg>
<constructor-arg name="gender" value="里"></constructor-arg>
<constructor-arg name="age" value="13"></constructor-arg>
<constructor-arg name="email" value="11"></constructor-arg>
</bean>
<bean id="person3" class="com.bingchunmoli.bean.Person">
<constructor-arg value="name"></constructor-arg>
<constructor-arg value="13"></constructor-arg>
<constructor-arg value="nan"></constructor-arg>
<constructor-arg value="@"></constructor-arg>
</bean>
<bean id="person4" class="com.bingchunmoli.bean.Person">
<constructor-arg value="name"></constructor-arg>
<constructor-arg value="11"></constructor-arg>
<constructor-arg value="@" index="3"></constructor-arg>
<constructor-arg value="nan" ></constructor-arg>
</bean>
注:
1.1、bean标签的作用
bean标签用于配置被spring容器管理的bean的信息
注意:bean标签配置的bean的创建默认是调用无参数的构造方法,若没有无参构造方法则不能创建成功。
1.2、bean标签属性
id:给对象在容器中提供一个唯一标识。用于获取对象。
class:指定类的全限定名。用于反射创建对象。默认情况下调用无参构造函数。
scope:指定对象的作用范围。
singleton:默认值,单例的(在整个容器中只有一个对象).
prototype:多例的
request:将Spring 创建的 Bean 对象存入到 request 域中.
session:将Spring 创建的 Bean 对象存入到 session 域中.
global session:WEB 项目中,应用在 Portlet 环境.如果没有 Portlet 环境那么globalSession 相当于 session。
init-method:指定类中的初始化方法名称。
destroy-method:指定类中销毁方法名称。比如DataSource的配置中一般需要指定destroy-method=“close”。
lazy-init:ApplicationContext实现的默认行为就是在启动时将所有 singleton bean进行实例化。lazy-init可以延迟初始化,设置lazy-init="true"使得Ioc容器在第一次需要bean的时候进行实例化。
3. 验证:
新建test包或者在mavenTest包下新建类 包含以下方法
@Test
public void Test(){
// ApplicationContext:代表ico容器
// ClassPathXmlApplicationContext:当前应用的xml配置文件在ClassPath下。
// 根据spring的配置文件得到ioc容器对象
ApplicationContext ioc = new ClassPathXmlApplicationContext("Spring.xml");
// 配置文件在系统路径下并不在项目路径下 使用:FileSystemXmlAppcationContext("路径");
// Person bean = (Person) ioc.getBean("person1");
// 使用name值获取
// Person person = ioc.getBean(Person.class);
// 使用class反射获取,缺点如果有多个同类型声明会报异常,优点不需要强转类型
Person person1 = ioc.getBean("person4",Person.class);
// 通过name值和class反射获取,优点可以有多个同类型声明,且不需要强转
System.out.println(person1);
}
Comments | NOTHING