Spring简述一

1. Spring是什么

Spring简述二
Spring简述三——Spring和JDBCTemplate的整合&& Spring和Mybatis的整合使用
Spring:轻量级开源框架
核心:
IOC(inverse of Control):控制反转  
DI:依赖注入AOP(面向切面):给类添加功能而不修改源代码Spring对JavaEE提供了不同层的解决方案
展示层:servlet、SpringMVC
业务层:Spring IOC
数据层:JDBCTemplate、Mybatis

Spring简述一_第1张图片

2. IOC

控制反转将对象的管理(创建,维护,销毁)交给Spring容器,使用方在使用对象时在Spring容器中直接获取对象(将对象的使用权交给使用方),使用方不用关注对象的创建过程。

IOC原理:

1、首先配置XML配置文件,将类配置在配置文件中
2、使用dom4j来解析XML配置文件
3、利用工厂方法来创建对象——通过反射技术创建对象
class.forname("com.tulun.bean.student");


class User{       
 public  void say(){     
        //业务逻辑     
           }
 }
           //配置文件中
    
 class Facyory{      
   public static User  getBnean(String name){    
   //读取配置文件;
   通过dom4j解析xml文件 
 //获取name值对应的类路径
  Class class="name"->"com.bean.User" 
   //通过反射创建对象 
    User user=clss.newInstance; 
     return user;
       }
       }class Test{public void add(){User user=Facyory.getBean("user")user.talk;
       }
       }


IOC的实现:

基于配置bean的实例化:
1、无参构造函数实例化(如果此时给一个有参,会覆盖默认的无参,会报错)在使用无参构造时,要保持类中有无参构造函数,或使用默认的无参构造函数(隐形),即类中不能显性的使用有参
2、静态工厂方法实例化


public class StaticFactory { 
 public static Student  getBean() {
  return new Student();
   }
   }
   class属性:静态工厂类的全路径名    factory-method属性:方法名,静态工厂里获取student对象提供的方法
   


3、普通工厂方法实例化


public class CommonFactory {
 public Student getStudent() {
   return new Student(); 
    }
    }
    
    

基于注解bean的实例化使用步骤:
1、开启注解扫描

2、添加注解@Component:添加在类上,表示将此类交给Spring


@Component(value = "student")
public class Student {
 private List list; 
 public void setList(List  list) {
 this.list = list;
 }
 }


基于@Component注解衍生出三个注解:
@Controller    展示层
@Service 业务层
@Repository  持久层
ps.以上注解的作用一样,放什么层只是习惯

DI依赖注入(向对象赋值):

1、有参构造:


public class Student { 
 private String name; 
  //有参构造函数
   public Student(String name) {
    this.name = name; 
     }
     }


  
    
    
     


<constructor-arg>name=" " value=" "</constructor-arg>

2、set方法:


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

      
          
          
       
     


<property>name=" " value=" "</property>
注:如果value处要填充的是一个引用类型的对象而不是String(value里只能填String类型),就要把vlue关键字改成ref ref——引用类型;
list——list集合;
array——数组;
map——map集合(map里有<entry>标签);

你可能感兴趣的:(JAVA,Spring,框架,概述,小白,Java)