Spring

解析XML文件

  要写的java代码

ApplicationContext app=new ClassXmlPathApplicationContext("所配置XML的名字");

app.getBean("这里写xml里面配置的id,也就是bean的名字,返回Object对象");

 

Spring的IOC反转控制

用来创建对象

创建对象的3种方式

第一可以通过无参数构造方法创建对象,对应的xml配置代码如下

//记住这里的文件符号,写错过
  

 

第二可以使用有参数构造方法创建对象,对应的xml配置如下

 








//带有参数的位置index








//带有参数的类型type





 

第三可以使用工厂模式创建对象

 

//工厂模式,解决某个特定的问题实现对创建对象的控制



//建立公共的类,公共的父类
public class People{
   

}

//建立子类
public class Student extends People{
   public Student(){
    System.out.println("这是学生的构造方法");
    }

}

public  class Teacher extends People{
   public Teacher(){
       System.out.println("这是老师的构造方法");
    }

  
}

//工厂模式
public class PeoFactory{

     public static void main(String[] args){
   //普通方法
       public People  getInstance(String par){
          if("Teacher".equals(par)){
               return new Teacher();

           }else if("Student".equals(par)){
                 return Student();
            }else{
           return null;

            }


       }
        
  //静态方法
   public  static People  getInstance2(String par){
          if("Teacher".equals(par)){
               return new Teacher();

           }else if("Student".equals(par)){
                 return Student();
            }else{
           return null;

            }


       }


   }

  
}




 

 

//普通方法

    


//静态加载



   






 

 

Spring的DI依赖注入

Java类之间的关系    组合 依赖  继承 实现  还有什么鬼东西不知道忘了    

依赖注入给类里面的另一个类进行赋值

java中有3种赋值的方法

第一种,用有参数的构造方法进行注入赋值,xml配置如下

//这是俩个类
public class Student implements Serializable{
	 private int sno;
	 private String name;
	 
	 private  String sex;
	 private  Clazz cla;
	public int getSno() {
		return sno;
	}
	public void setSno(int sno) {
		this.sno = sno;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public Clazz getCla() {
		return cla;
	}
	public void setCla(Clazz cla) {
		this.cla = cla;
	}
	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Student(int sno, String name, String sex, Clazz cla) {
		super();
		this.sno = sno;
		this.name = name;
		this.sex = sex;
		this.cla = cla;
	}
	@Override
	public String toString() {
		return "Student [sno=" + sno + ", name=" + name + ", sex=" + sex + ", cla=" + cla + "]";
	}
	 
	 

}

*****************************************************************

public class Clazz implements Serializable{
	private int cno;
	
	private  String cname;

	public int getCno() {
		return cno;
	}

	public void setCno(int cno) {
		this.cno = cno;
	}

	public String getCname() {
		return cname;
	}

	public void setCname(String cname) {
		this.cname = cname;
	}

	public Clazz() {
		super();
		// TODO Auto-generated constructor stub
	}

	public Clazz(int cno, String cname) {
		super();
		this.cno = cno;
		this.cname = cname;
	}

	@Override
	public String toString() {
		return "Clazz [cno=" + cno + ", cname=" + cname + "]";
	}
	

}

//xml配置

//先加载clazz这个类

  

   
    
    
    //这个是不同的,用的是ref

 


 

第二种用set方法进行赋值注入,对应的xml配置如下

  
     
     
      
    
    

 
    
   
        
    

  

 

 

 

 

Spring的AOC面向切面编程

不知道

 

 

 

你可能感兴趣的:(java高级)