• Spring基础知识


    spring简介

    Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。

    Spring与解耦合

    Spring根据功能的不同,将代码划分为两类:主业务逻辑与系统级服务(交叉业务逻辑)。主业务逻辑间,及主业务逻辑与系统级服务间的耦合度是较高的。Spring对于前述两种较高的耦合度,采用了两种不同的技术进行解耦。使用IoC解耦主业务逻辑间的耦合度,使用AOP解耦主业务逻辑与系统级服务间的耦合度。

    spring框架的下载

    下载地址:http://repo.spring.io 

    官网:    http://spring.io 

    spring程序

    package com.kaikeba.beans;

    public class Student {

    private String sname;
    private int age;
    private Teacher teacher;

    public Teacher getTeacher() {
    return teacher;
    }
    public void setTeacher(Teacher teacher) {
    this.teacher = teacher;
    }
    public String getSname() {
    return sname;
    }
    public void setSname(String sname) {
    this.sname = sname;
    }
    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }

    }

    package com.kaikeba.beans;

    public class Teacher {
    private String tname;

    public String getTname() {
    return tname;
    }

    public void setTname(String tname) {
    this.tname = tname;
    }

    }

    package com.kaikeba.util;
    
    public class BeanDefined {
        
        private String beanId;
        private String classPath;
        public String getBeanId() {
            return beanId;
        }
        public void setBeanId(String beanId) {
            this.beanId = beanId;
        }
        public String getClassPath() {
            return classPath;
        }
        public void setClassPath(String classPath) {
            this.classPath = classPath;
        }
    }
    package com.kaikeba.util;
    
    import java.util.List;
    
    public class BeanFactory {
        
           private List<BeanDefined> beanDefinedList;
    
        public List<BeanDefined> getBeanDefinedList() {
            return beanDefinedList;
        }
    
        public void setBeanDefinedList(List<BeanDefined> beanDefinedList) {
            this.beanDefinedList = beanDefinedList;
        }
        
        public Object getBean(String beanId) throws Exception{
               Object instance;
               for(BeanDefined beanObj:beanDefinedList){
                     if(beanId.equals(beanObj.getBeanId())){
                         String classPath = beanObj.getClassPath();                     
                         Class classFile= Class.forName(classPath);
                         //在默认情况下,Spring工厂是通过调用当前类默认工作方法创建实例对象
                         instance= classFile.newInstance();
                         return instance;
                     }
               }
               return null;
        }
    }
    package com.kaikeba.test;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import com.kaikeba.beans.Teacher;
    import com.kaikeba.util.BeanDefined;
    import com.kaikeba.util.BeanFactory;
    
    public class TestMain {
    
        public static void main(String[] args) throws Exception {
            
              //1.声明注册bean
              BeanDefined beanObj = new BeanDefined();
              beanObj.setBeanId("teacher");
              beanObj.setClassPath("com.kaikeba.beans.Teacher");
              
              List beanList = new ArrayList();
              beanList.add(beanObj);//spring核心配置
              
              //2.声明一个Spring提供BeanFacotory
              BeanFactory factory = new BeanFactory();
              factory.setBeanDefinedList(beanList);
              
              //3.开发人员向BeanFactory索要实例对象.
              Teacher t= (Teacher) factory.getBean("teacher");
              System.out.println(t);
    
        }
    
    }

     

  • 相关阅读:
    Makefile与shell脚本区别
    Linux fdisk命令参数及用法详解---Linux磁盘分区管理命令fdisk
    李洪强iOS开发之XMPP
    李洪强iOS开发之宏定义方法来初始化一个单例对象
    李洪强iOS开发之拓展篇—UIDynamic(简单介绍)
    李洪强iOS开发之【零基础学习iOS开发】【02-C语言】07-基本数据类型
    李洪强iOS开发之OC[018]对象和方法之间的关系
    李洪强漫谈iOS开发[C语言-011]
    李洪强iOS开发之静态库
    李洪强iOS开发之【零基础学习iOS开发】【02-C语言】06-变量与内存
  • 原文地址:https://www.cnblogs.com/wnlsq/p/12194311.html
Copyright © 2020-2023  润新知