Spring笔记(1)简介及简单配置

spring简介

spring:开源的具有loC功能和AOP思想的java对象/实例容器,管理和装配实例供项目使用

IoC Inversion of Control 控制反转   class代码决定调用改为配置决定调用  
DI Dependency Injection 依赖注入        容器自动匹配并注入依赖的类型  
AOP Aspect Oriented Programming     面向切面编程思想  
OOP Object Oriented Programming     面向对象编程思想

spring配置

1.导入spring的jar包

001.PNG

2.spring的配置文件xxx.xml



    
    
        
        
        
            
            
            
        
        
        
        
            
            
            
        
        
    
    

3.使用

创建 springIoc 容器, web项目使用 Listener创建

    ApplicationContext cxt = new ClassPathXmlApplicationContext("app.xml");  

从容器中取出要使用的 实例

    Person e = (Person)cxt.getBean("p1");


    public static void main(String[] args) {
        
        //创建 springIoc 容器, web项目使用 Listener创建
        ApplicationContext cxt = new ClassPathXmlApplicationContext("app.xml");
        
        //从容器中取出要使用的 实例
        Person e = (Person)cxt.getBean("p1");
        
        System.out.println("日志1.." +e.getPid());
        System.out.println("日志2.." +e.getPname());
        System.out.println("日志3.." +e.getPweight());
        System.out.println("--------------");
        //从容器中取出要使用的 实例
        Person n = (Person)cxt.getBean("p2");
        System.out.println("日志3.." +n.getPid());
        System.out.println("日志4.." +n.getPname());
        System.out.println("日志5.." +n.getPweight());
        
    }//main()

注入方式

1.set注入

002.PNG

2.构造器注入

003.PNG

Bean配置和生命周期


    
    
        
        
        
        
        
        
           
        
        
        
        
        
        
        
    
scope


不写默认为scope="singleton":只创建一次实例
prototype:每次getBean时创建新实例

init-method
destroy-method
lazy-init
alias bean别名


  


init-method=""创建对象后立刻调用的方法
destroy-method=""对象销毁前调用的方法
lazy-init="" 默认为true 加载IoC容器时创建实例
false getBean时创建实例
id也可以写为name,推荐使用id

ref:引用数据,一般是另一个bean id值

本类中需要有set方法,name为set方法中set后的名字首字母小写



    public class FirstController {
    
    //本Controller需要的其他类
    FirstManager fmng;
    
    SecondManager secMng;
    
    public void setFm(FirstManager f){
        this.fmng = f;
    }
    

    public void setSecMng(SecondManager secMng) {
        this.secMng = secMng;
    }


    
    
    

    
    
        
        
    
autowire="byType"自动注入set方法对应的类型不能存在两个类型一致的bean
004.PNG
autowire="byName"自动注入容器中和set方法名一致的bean
005.PNG

你可能感兴趣的:(Spring笔记(1)简介及简单配置)