Spring框架介绍
Spring是一个开源框架,他是一个一站式框架
Spring是一个容器,你给他安装什么,他就用有什么功能,安装
Struts2他就是一个web层框架,给他安装hibernate他就是一个dao层框架,service也可以使用spring框架来管理
Spring springMvc springBoot都是web层框架
JdbcTemplate spring中也提供了dao层的框架
spring核心思想的介绍
ioc(控制反转)
di(依赖入住)
aop(面向切面)事物的管理
spring环境搭建
1.导包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core
-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans
-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/log4j/log4j
-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
- 准备一个类 User
- 书写配置文件 applicationContext.xml
引入约束
配置一个实体类在spring容器中
- 书写配置代码
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = (User) ac.getBean("user");
System.out.println(user);
Spring工厂 所有的对象都在工厂里面来管理
在资源匮乏的时候用
BeanContext 当你调用getBean方法的时候创建对象
在资源充足的时候用
ApplicationContext 在读取配置文件的时候,会创建所有的容器中的对象
ClassPathXmlApplicationContext 相对地址读取配置文件
FileSystemXmlApplicationContext 绝对地址读取配置文件
Spring核心配置文件详解
- 名字和位置
配置文件名字 没有要求
位置 maven 放在resource中
- bean属性的配置
配置类 用来创建对象
Class
Name
calss:类的完整路径名
name:给这个类起一个名字
id:一般情况下 id 不能重复
不能出现特殊字符 如:/
创建对象的范围 默认情况是单例的 特殊情况 比如action 用多例的
创建对象和销毁对象执行的方法
init-method
destroy-method
销毁的方法 只能手动销毁单例的对象 多例的不允许手动销毁
创建对象的方式:
- 通过无参的构造函数来创建(默认)
- 通过静态工厂来实例化对象
提供静态工厂 类中提供一个
配置文件中
<bean name="userFactory" class="com.cn.hd.create.UserFactory" factory-method="createUser"></bean>
- 通过实例化工厂来创建对象
准备一个工厂 提供创建对象的方法 public
public class UserFactory1 {
public User createUser(){
System.out.println("通过实例化工厂创建对象");
return new User();
}
配置文件中 既要配置要创建的对象 也要配置工厂
在对象的创建时,要指定是那个工厂 中的方法
<bean name="userFactory1" class="com.cn.hd.create.UserFactory1" ></bean>
<bean name="user2" class="com.cn.hd.text.User" factory-bean="userFactory1" factory-method="createUser"></bean>