发表于: 2018-09-10 20:45:06
1 533
今天完成的事情:
今天主要看的是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项目
评论