Spring初步学习(一)

spring的特点为:轻量级无侵入式设计
功能模块:
test:提供单元测试的支持
core container:IOC,DI
aop:面向切面编码,
data access:操作数据库,事务控制
web:集成SpringMVC struts2

第一个简单的小例子
1、导jar(test core container)

我们可以通过Maven去加载对应需要的jar包
pom.xml


  4.0.0
  com.xinge
  spring-01
  0.0.1-SNAPSHOT
  jar
  
  
  
    
        mvnrepository
        http://mvnrepository.com/
    
  
  
  
  
    1.7
    utf-8
    UTF-8
    4.1.0.RELEASE 
  
  
  
  
    
    
        junit
        junit
        4.11
        test
    
    
    
    
    
        mysql
        mysql-connector-java
        5.1.32
    
    
    
    
    
    
        org.springframework
        spring-test
        ${spring.version}
        test
        
    
    
    
    
        org.springframework
        spring-beans
        ${spring.version}
    
    
    
            org.springframework
            spring-core
            ${spring.version}
        

        
            org.springframework
            spring-context
            ${spring.version}
        

        
            org.springframework
            spring-context-support
            ${spring.version}
        
    
        
            org.springframework
            spring-expression
            ${spring.version}
        
        
  
  
  
  
    
        
        
            org.apache.maven.plugins
            maven-compiler-plugin
            3.1
            
                ${jdk.version}
                ${jdk.version}
                ${charset}
            
        
    
  

2、创建一个普通的java类

即写一个bean对象

public class Dog {
    private String dogName;

    public String getDogName() {
        return dogName;
    }

    public void setDogName(String dogName) {
        this.dogName = dogName;
    }
    
    public void shout(){
        System.out.println("汪汪!");
    }
    
    public Dog(){
        System.out.println("dog对象初始化成功!");
    }
}
public class Boy {
 private Dog dog;

public Dog getDog() {
    return dog;
}

public void setDog(Dog dog) {
    this.dog = dog;
}

@Override
public String toString() {
    return "Boy [dog=" + dog + "]";
}
 
}
3、在spring配置文件中注册java类




    
    
    
        
    
    
     
    


4、写测试类,测试spring容器管理的对象是否实例化成功
public class DogTest {
    @Test
    public void testD(){
//      获取spring容器对象
        ApplicationContext ac = 
                new ClassPathXmlApplicationContext("applicationContext.xml");
//      获取容器中管理的对象,getBean方法中的参数即为bean的id属性值
        Dog dog = (Dog) ac.getBean("dog");
//      测试容器实例化的对象是否成功
        dog.shout();
        System.out.println(dog.getDogName());
    }
}

package com.icss.model;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class BoyTest {

    @Test
    public void testD(){
//      获取spring容器对象
        ApplicationContext ac = 
                new ClassPathXmlApplicationContext("applicationContext.xml");
//      获取容器中管理的对象,getBean方法中的参数即为bean的id属性值
        Boy boy = (Boy) ac.getBean("boy");
//      测试容器实例化的对象是否成功
        
        System.out.println(boy.getDog().getDogName());
    }
}

值得注意的是,当第一次加载spring容器对象时,spring容器对象会全部实例化里面的所有bean,即所有bean的构造函数都执行了。

构造器方式,普通工厂的方式,静态工厂的方式进行实例化

先建立一个person类的bean

public class Person {

    private String name;
    private String age;
    
    
    public String getName() {
        return name;
    }


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


    public String getAge() {
        return age;
    }


    public void setAge(String age) {
        this.age = age;
    }


    public void eat()
    {
        System.out.println("人类必须要吃食物,否则挂掉");
    }
}

1、构造器方式
容器配置文件:


    

测试方法:

@Test
    public void testD(){
//      获取spring容器对象
        ApplicationContext ac = 
                new ClassPathXmlApplicationContext("applicationContext.xml");
//      获取容器中管理的对象,getBean方法中的参数即为bean的id属性值
        Person person = (Person) ac.getBean("person");
//      测试容器实例化的对象是否成功
        
        person.eat();
        //System.out.println(boy.getDog().getDogName());
    }

2、静态工厂方式

public class PersonFactory {

    public static Person getPerson()
    {
        return new Person();
    }
}

    

3、普通工厂方式

public class PersonFactory2 {
    public  Person getPerson()
    {
        return new Person();
    }
}

    

    

你可能感兴趣的:(Spring初步学习(一))