spring框架:
核心功能专门用来创建对象和管理对象
以核心功能为基础衍生出来的spring的功能,为了使项目解耦/减少侵入
核心部分:
IOC控制反转
DI依赖注入
AOP面向切面编程
数据访问:transaction事务管理 springjdbc
控制反转的定义:
把new/创建的对象的控制权,反转给第三方spring容器来new/创建管理
spring把person实例化并存储给spring容器,什么时候需要就从spring容器中取出即可
过程:
1.创建项目
2.导入jar包:手动拷贝或maven管理
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tarena</groupId>
<artifactId>testspring_xml</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>${project.build.sourceEncoding}</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
3.创建java类 用spring容器来创建和管理java类对象
4.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
file:///c:/schema/beans/spring-beans-4.3.xsd" >
<!--
用静态工厂生产对象,并交给spring容器管理
id="hello" 容器中的对象的id
class="包名.类名" 普通的类
factory-method="getObject" 类中有一个静态的方法,静态的方法要由程序员new出一个对象
-->
<bean id=""
class="" ></bean>
</beans>
5.启动spring容器:
//初始化spring的容器,负责加载和解析spring的清单文件
//按照清单文件的内容,创建和管理对象,
AbstractApplicationContext context =
new ClassPathXmlApplicationContext("spring.xml");
or:
ApplicationContext context= new ClassPathXmlApplicationContext("spring.xml");
启动spring容器:加载和解析spring的清单文件,并按照清单文件的内容去工作
6.从spring容器中取出容器中的对象来使用
//去spring容器中寻找id为hello的对象,并取出
Hello hello=(Hello)context.getBean(“hello”);
hello.sayHello(“zhangsan”);