美文网首页
bean的定义-xml

bean的定义-xml

作者: 充满智慧的白痴 | 来源:发表于2019-12-30 10:28 被阅读0次

xml配置bean

package com.sptest;

import com.sptest.bean.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
web.xml

public class SpringTest {
    public static void main(String[] args){
        // 获取context上下文对象并载入xml配置
        System.out.println(ApplicationContext.class);
        ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
        System.out.println(1);
        // 强制类型转换
        User user = (User) context.getBean("User");
        System.out.println(user.getPassword());
        // 第二种形式,已经废弃是applicationContext父接口
        XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("spring.xml"));
        User user1=(User) factory.getBean("User");
        System.out.println(user1);
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
    <bean id="User" class="com.sptest.bean.User">
        <property name="username" value="zs"/>
        <property name="password" value="123456"/>
    </bean>
</beans>

ClassPathXmlApplicationContext classpath相对路径加载
FileSystemXmlApplicationContext 全路径加载
WebXmlApplicationContext web容器范围内加载、

bean的定义

作用域 scope
singleton :在spring IoC容器仅存在一个Bean实例,Bean以单例方式存在,默认值
prototype :每次从容器中调用Bean时,都返回一个新的实例,即每次调用getBean()时,相当于执行newXxxBean()
request :每次HTTP请求都会创建一个新的Bean,该作用域仅适用于WebApplicationContext环境
session :同一个HTTP Session共享一个Bean,不同Session使用不同的Bean,仅适用于WebApplicationContext环境
global-session :一般用于Portlet应用环境,该运用域仅适用于WebApplicationContext环境

对有状态的bean应该使用prototype作用域,而对无状态的bean则应该使用singleton作用域。

生命周期

Bean的定义——Bean的初始化——Bean的使用——Bean的销毁

<bean id="helloWorld" 
       class="com.tutorialspoint.HelloWorld"
       init-method="init" destroy-method="destroy">
       <property name="message" value="Hello World!"/>
</bean>

bean的继承,其实就是配置的继承

<bean id="ChildStudent" class="com.sptest.bean.ChildStudent" parent="ParentStudent">
      <property name="sex" value="男"/>
  </bean>
<bean id="ParentStudent" class="com.sptest.bean.ParentStudent">
      <property name="username" value="zs"/>
      <property name="password" value="123456"/>
  </bean>
// 前提是ChildStudent中也有username和password连个属性
// 根据继承定义模板
<bean id="beanTeamplate" abstract="true">
    <property name="username" value="zs"/>
    <property name="password" value="123456"/>
    <property name="sex" value="男"/>
</bean>
<bean id="ChildStudent" class="com.sptest.bean.ChildStudent" parent="beanTeamplate"</bean>

相关文章

网友评论

      本文标题:bean的定义-xml

      本文链接:https://www.haomeiwen.com/subject/zibauctx.html