发表于: 2018-09-10 20:45:06

1 532


今天完成的事情:

今天主要看的是Spring的一些基础概念

Spring是什么

1.是一个轻量级的开源框架,是为解决企业应用开发的复杂性而创建的;

2.是一个三层架构,也为J2EE应用程序开发提供集成的框架

web层:Spring MVC;

业务层:Spring的IoC;

持久层 :Spring的JDBC、ORM、等持久层框架;

Spring的核心是AOP和IoC

IoC是控制反转Inverse of Control

每次我们建立对象有时候不是使用对象,而是使用对象所提供的服务,但是建立对象还要对对象进行管理和善后,这时如果系统能够创建对象给我们使用那么就不需要考虑那么多,直接用就可以了

这里的IoC就是对象的创建和依赖关系可以由Spring完成创建以及注入

没有引入IoC的时候,被注入对象直接依赖于被依赖的对象,有了IoC之后,两者的关系都是通过IOCService Provider进行统一管理.被注入的对象需要什么,直接用IoC Service Provider,后者会把相应的被依赖对象注入到被注入的对象中

传统开发模式下,我们直接new一个对象来创建对象,这是正转.在使用IoC之后,依赖的对象由原来的主动获取变成了被动接受,这是反转

AOP是面向切面编程Aspect  Oriented Programming

AOP思想就是横向重复,纵向抽取

是OOP面向对象编程的补充和完善

Aspect主要是减少代码的复用

横切把系统分为两个部分:核心关注点(业务处理的主要流程)和横切关注点

Spring干什么

1.方便解耦,简化开发

2.方便对程序进行拦截,运行,监控等功能

3.可以对事物进行声明

4.是一个使用范围很广的框架

建立了一个简单的Spring的项目

这是我的框架图

建立了一个对比文件,一个使用Spring,一个没有使用Spring

package TestWithoutSpring;

public class Hello {
private String name;

   public void showName() {
System.out.println(name);
   }
public void setName(String name) {
this.name = name;
   }
}

这个是建立Hello方法类

package TestWithoutSpring;

public class TestWithouSpring {
public static void main(String[] args){
Hello hello = new Hello();
       hello.setName("没有使用Spring");
       hello.showName();
   }
}

这个是测试类

得到结果如上图

另外是写使用Spring的方法

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
   <bean id="HelloSpring" class="TestUseSpring.HelloSpring">
       <property name="use" value="Spring"></property>
   </bean>
</beans>

bean id的属性是:一个对象的引用 , class为全包名,这里use注入的值为Spring

之后是创建helloSpring用户对象

package TestUseSpring;

public class HelloSpring {
private String use;

   public void showUse() {
System.out.println("使用"+use);
   }

public void setUse(String use) {
this.use = use;
   }
}

之后是进行测试

package TestUseSpring;


import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestHelloSpring {
public static void main(String[] args){
ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-config.xml");
       HelloSpring helloSpring = (HelloSpring) ctx.getBean("HelloSpring");
       helloSpring.showUse();

   }
}

不过这其中的参数的意义还没弄清楚,明天争取搞明白

所得结果如上图所示

明天计划的事情:

继续学习Spring的相关知识,了解Test文件中每个参数的意义

明天了解JDBCTemplate以及相关原理

遇到的问题:

主要是Spring很多的基础知识不知道(查阅资料)

收获:

了解了Spring的相关基础知识

写了一个简单的Spring项目


返回列表 返回列表
评论

    分享到