Spring的入门(概述)

什么是Spring

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。

  • Spring:SE/EE开发的一站式框架。
  • 一站式框架:有EE开发的每一层解决方案。
  • WEB层 :SpringMVC
  • Service层 :Spring的Bean管理,Spring声明式事务
  • DAO层 :Spring的Jdbc模板,Spring的ORM模块

为什么学习Spring

Spring的入门(概述)_第1张图片

什么是IOC?

  • IOC: Inversion of Control(控制反转)。
    • 控制反转:将对象的创建权反转给(交给)Spring。
下载Spring的开发包

Spring官网:http://spring.io/

解压压缩包

下载完之后解压压缩包
Spring的入门(概述)_第2张图片

  • docs :Spring的开发规范和API
  • libs :Spring的开发的jar和源码
  • schema :Spring的配置文件的约束

创建一个web项目,引入jar包

Spring的入门(概述)_第3张图片
Spring的入门(概述)_第4张图片
创建接口和实现类(普通的方式)

public interface UserDAO{
	public void save();
}
public class UserDAOImpl implements UserDao{
	public void save(){
		System.out.println("UserDaoImpl执行了");
	}
}

问题:如果底层的实现切换了,需要修改源代码,能不能不修改程序源代码对程序进行扩展?
Spring的入门(概述)_第5张图片

将实现类交给Spring管理

在spring的解压路径下spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\html\xsd-configuration.html,然后在web项目下的src创建一个名为applicationContext.xml(名字可随意取)的xml文件,如下
Spring的入门(概述)_第6张图片
方便对比,放一个servlet的xml配置

<servlet>
	<servlet-name>类名servlet-name>
	<servlet-class>路径servlet-class>
servlet>

到这里大家会发现这里面的东西跟servlet的差不多,都是有类和路径的

编写一个测试类
public void demo(){
	ApplicationContext applicationContext = new ClassPathXmlApplicationContext(applicationContext.xml);
	UserDao userDAO = (UserDao)applicationContext.getBean("UserDao");
	UserDao.save();
}

IOC和DI(*****)

Spring的入门(概述)_第7张图片

  • IOC:控制反转,将对象的创建权反转给了Spring。
    • DI:依赖注入,前提必须有IOC的环境,Spring管理这个类的时候将类的依赖的属性注入(设置)进来。
  • 面向对象的时候
    • 依赖
Class A{

}
Class B{
	public void xxx(A a){

  }
}
继承:is a
Class A{

}
Class B extends A{

}
聚合:has a

正在尝试写博客,把会的分享给你们,如有写的不好的地方,希望指点一下,谢谢!

你可能感兴趣的:(#,Spring)