Spring基础

1.Spring是什么?

(1)Spring 是一个开源的轻量级的java开发框架。
(2)Spring的一个IOC(DI)和 AOP 容器框架。
使用Spring开发可以将Bean对象,Dao对象,Service组件对象等交给Spring容器来管理,使得开发更加简洁方便。

2. Spring有什么作用?

简化应用程序的开发

3. 简化应用程序的开发体现在哪些方面

1.IOC(DI)

IOC(控制反转),指的是将对象的创建权交给Spring容器去创建。我们在使用Spring框架之前,对象的创建都是由我们自己在代码中手动new创建。而使用Spring之后,对象的创建都是交给Spring容器。

谁控制谁:Spring容器(IOC容器)控制对象
控制什么:控制了外部资源的获取
正转(传统):由我们手动控制去获取依赖对象
反转:IOC容器 来帮忙创建对象A ,然后注入依赖对象B

DI(依赖注入)是IOC的另一种表达方式,指依赖的对象不需要手动调用setXXX方法去设置,而是通过配置赋值。(DI是IOC的一个实例,怎么去实现IOC,就是通过DI)

将属性值(value)注入给了属性(name)
将属性(name)注入给了 bean
将 bean 注入给了 IOC容器
比如:A依赖B,意味着B将通过IOC容器注入给了A中

注入方式有:
1.通过配置文件去注入
(1)属性注入
(2)构造器注入
(3)工厂注入
2.通过注解去注入

2.AOP

AOP(面向切面编程),横向编程方式,是面向对象开发的一种补充,它允许开发人员在不改变原来模型的基础上增加新的需求。例如:开发人员可以不改变原来业务逻辑模型的基础可以动态增加日志,安全或者异常处理功能。

4.使用Spring的简单例子

(1)传统的方法:

package Demo01;

public class User {
    String username;
    Integer age;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Integer getAge() {
        return age;
    }

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

我们需要手动去创建对象User

public class Test01 {
    public static void main(String[] args) {
        User user = new User();
        user.setUsername("aaa");
        user.setAge(18);
        System.out.println(user.getUsername()+"-"+user.getAge());
    }
}

(2)使用BeanFactory容器(bean对象容器)
ApplicationContext接口是BeanFactory的子接口
它的两个实现类:ClassPathXmlApplicationContext,FileSystemXmlApplicationContext

  • 使用ClassPathXmlApplicationContext
    ClassPathXmlApplicationContext 默认会去 classPath 路径下找。
    classPath 路径指的就是编译后的 classes 目录。
    bean02.xml



    
    
        
        
        
    

Test02.java

public class Test02 {
    public static void main(String[] args) {
        //使用ApplicationContext容器,加载配置文件(相对路径)
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("demo02/bean02.xml");
        User user = (User)context.getBean("user");
        System.out.println(user.getUsername()+"-"+user.getAge());
    }
bb--20
  • FileSystemXmlApplicationContext
    FileSystemXmlApplicationContext 默认是去项目的路径下加载,这里要提供xml文件的完整路径(绝对路径)
public class Test02 {
    public static void main(String[] args) {
        String path = "D:\\code\\Spring\\springDemo\\src\\demo02\\bean02.xml";
        FileSystemXmlApplicationContext c = new FileSystemXmlApplicationContext(path);
        User user = (User)c.getBean("user");
        System.out.println(user.getUsername()+"--"+user.getAge());
    }
}

你可能感兴趣的:(Spring基础)