一、框架
什么是框架
通常指为实现某个业界标准或完成特定基本任务的软件组件规范,
也指为了实现摸个软件组件规范时,提供规范所要求之基础功能的软件产品。
框架的特点
- 半成品
- 封装了特定的处理流程和控制逻辑
- 成熟的、不断升级改进的软件
为什么使用框架
- 软件系统日趋复杂
- 重用度高,开发效率和质量极高
- 软件设计人员要专注与对领域的了解,使需求分析更明确
- 易于上手、快速解决问题
二、接口
- 用于沟通的中介物的抽象化
- 实体把自己提供给外界的一种抽象化的说明,用以内部操作分离出外部沟通方法,使其能修改内部
- 而不影响外界其他实体与其交互的方式
- 对应Java接口即声明,声明了哪些方法是对外公开提供的
- 在Java8中,接口可以拥有方法体
面向接口编程:
- 结构设计中,分清层次调用关系,每层只向外层提供一组接口,各层之间依赖接口而非实现类。
- 接口实现的变动不影响各层之间的调用,这在公共服务中尤为重要
- ”面向接口编程“中的接口是用于隐藏具体实现和实现多态性的组件
三、Spring
1.1 IOC 控制反转
其思想是反转资源获取的方向。
应用了IOC之后,则是容器主动的将资源推送给他所管理的组件,组件所要做的仅仅是选择一种合适的方法接受资源。这种行为也被称为查找的被动形式
1.2 DI 依赖注入
IOC的另一种表示方式:即组件以一些预先定义好的方式(如:setter方法)
接受来自容器的资源注入
1.3 AOP 面向切面编程
专门用于处理系统中各个模块的交叉关注点的问题
1.4 环境构建 (可参考
http://www.jikexueyuan.com/course/675.html)
Spring官网:
https://spring.io/projects
点击Spring Framework,选择相应版本的Reference
选择2.3里面的红框位置,进入下载列表,选择相应版本后,点击第一个进行下载。下载后名称如:spring-framework-4.3.7.RELEASE-dist
新建工程,导入JAR包。
Spring 模块
1.5 环境检测
新建一个HelloWorld类
package com.lbh.spring.beans;
public class HelloWorld {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
System.out.println("setName="+name);
}
public void name() {
System.out.println("hello:"+name);
}
public HelloWorld() {
System.out.println("HelloWorld constructor...");
}
}
新建一个applicationContext.xml
<?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-4.3.xsd">
<!-- 配置bean -->
<bean id="helloworld" class="com.lbh.spring.beans.HelloWorld">
<property name="name" value="111"></property>
</bean>
</beans>
新建main方法进行输出测试
package com.lbh.spring.beans;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// HelloWorld helloworld = new HelloWorld();
// helloworld.setName("lbh");
// helloworld.name();
//1.注册配置文件2.获取bean 3.调用bean方法
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
HelloWorld helloworld = (HelloWorld) ctx.getBean("helloworld");
helloworld.name();
}
}