Spring(二)

1、概述

Spring(二)_第1张图片Spring(二)_第2张图片

 2、BeanFactory

Spring(二)_第3张图片

 Spring(二)_第4张图片

 3、ApplicationContext

Spring(二)_第5张图片

Spring(二)_第6张图片

4、Bean管理

Spring(二)_第7张图片Spring(二)_第8张图片

5、创建Bean

Spring(二)_第9张图片

Spring(二)_第10张图片

 Spring(二)_第11张图片

Spring(二)_第12张图片

Spring(二)_第13张图片

Spring(二)_第14张图片

Spring(二)_第15张图片Spring(二)_第16张图片

Spring(二)_第17张图片

 Spring(二)_第18张图片Spring(二)_第19张图片

Spring(二)_第20张图片

Spring(二)_第21张图片

Spring(二)_第22张图片

Spring(二)_第23张图片

Spring(二)_第24张图片

Spring(二)_第25张图片

Spring(二)_第26张图片

 6、Aware相关接口

Spring(二)_第27张图片

HelloWorld:

package com.ljb.spring;
import org.springframework.beans.factory.BeanNameAware;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class HelloWorld implements BeanNameAware{
 private String message;
 private String name;
 private String career;
 private String beanName = null;
 
 public HelloWorld() {}
 
 public HelloWorld(String name , String career) {
  this.name = name;
  this.career = career;
 }
 
 
 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public String getCareer() {
  return career;
 }

 public void setCareer(String career) {
  this.career = career;
 }

 public String getMessage() {
  return message;
 }

 public void setMessage(String message) {
  this.message = message;
 }
 
 public void print() {
  System.out.println(this.getMessage());
  System.out.println(this.getName() + "的职业是:" + this.getCareer());
 }
 
 @Override
 public void setBeanName(String beanName) {
  // TODO Auto-generated method stub
  this.beanName = beanName;
  System.out.println("回调setName方法:id is "+beanName);
 }

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
  HelloWorld obj = (HelloWorld)context.getBean("helloWorld");
  obj.print();
 }
}

applicationContext.xml

<?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="helloWorld" class="com.ljb.spring.HelloWorld">
           <property name="message" value="Hello World!"/>
           <!-- <property name="name" value="林冲"/>
           <property name="career" value="军人"/> -->
           <constructor-arg index="0">
               <value>"林冲"</value>
           </constructor-arg>
           <constructor-arg index="1">
               <value>"军人"</value>
           </constructor-arg>
       </bean>
       
      </beans>

执行结果(可以看出在初始化HelloWorld之前就初始化了beanName):

回调setName方法:id is helloWorld
Hello World!
"林冲"的职业是:"军人"

Spring(二)_第28张图片

package com.ljb.spring;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanNameAware;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class HelloWorld implements BeanNameAware,ApplicationContextAware{
 private String message;
 private String name;
 private String career;
 private String beanName = null;
 private static ApplicationContext applicationContext= null;
 
 public HelloWorld() {}
 
 public HelloWorld(String name , String career) {
  this.name = name;
  this.career = career;
 }
 
 
 public String getName() {
  return name;
 }

 public void setName(String name) {
  this.name = name;
 }

 public String getCareer() {
  return career;
 }

 public void setCareer(String career) {
  this.career = career;
 }

 public String getMessage() {
  return message;
 }

 public void setMessage(String message) {
  this.message = message;
 }
 
 public void print() {
  System.out.println(this.getMessage());
  System.out.println(this.getName() + "的职业是:" + this.getCareer());
 }
 
 @Override
 public void setBeanName(String beanName) {
  // TODO Auto-generated method stub
  System.out.println("this.beanName is "+this.beanName);
  this.beanName = beanName;
  System.out.println("回调setName方法:id is "+beanName);
 }
 
 @Override
 public void setApplicationContext(ApplicationContext context)
   throws BeansException {
  // TODO Auto-generated method stub
  this.applicationContext = context;
  System.out.println("正在创建applicationContext实例");
 }

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
  System.out.println(context==applicationContext);
  HelloWorld obj = (HelloWorld)context.getBean("helloWorld");
  obj.print();
 }
}

执行结果:

回调setName方法:id is helloWorld
正在创建applicationContext实例
true
Hello World!
"林冲"的职业是:"军人"

 Spring(二)_第29张图片

Spring(二)_第30张图片

Spring(二)_第31张图片

Spring(二)_第32张图片

Spring(二)_第33张图片

Spring(二)_第34张图片

Spring(二)_第35张图片

Spring(二)_第36张图片

Spring(二)_第37张图片

留个小问题:这种注入日期,获取日期并没有按配置中的格式显示日期,这是怎么回事

text:2015-06-17

format:yyyy-MM-dd

结果:Wed Jun 17 00:00:00 CST 2015

你可能感兴趣的:(Spring(二))