Spring的环境搭建与注入
来源:互联网 发布:软件系统租用合同范本 编辑:程序博客网 时间:2024/06/06 01:37
Spring 的主要功能:IOC、AOP、Spring 关于jdbc的支持、与Junit的整合测试。
Spring的刚开始学习时的小知识点:
环境搭建
- 导入包 4个核心包+2个日志包
- 写xml配置文件
默认spring配置文件可以任意起名,但建议写成applicationContext.xml
默认路径可以是src下的任意路径,但是建议写在src下 - xml文件的约束导入
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd "></beans>
核心概念
IOC: Inverse of Control 控制反转
之前对象由我们开发人员创建,对象关系由我们维护,现在交由spring容器创建和维护类之间的关系。控制权反转了,这就是IOC。
DI:依赖注入
注入的方式:set方法注入,构造方法,字段注入
注入类型:
基本类型:8大基本数据类型
引用数据类型:对象(包括String)
实现IOC思想的很重要的技术支持。
AOP:面向切面编程(随后讲解的内容)
BeanFactory:
Spring原始接口,该接口实现类的一个特点是每次获取bean时,才会创建对象。
所以占用内存较小,但是速度不快。
ApplicationContext:
每次容器一起动就会创建对象,还有很多其他功能。占用内存较大,但是速度快。
两个实现:
ClassPathXmlApplicationContext 从类路径中加载配置文件
FileSystemXmlApplicationContext 从绝对路径中加载配置文件
ClassPathXmlApplicationContext 常用,但是将来不测试代码的时候,我们其实可以交给web.xml。
Spring配置,包括属性注入(赋值)
1、bean标签
Class: 被管理对象的完整路径
Name:给被管理的对象起个名字,便于获取对象的时候使用。
Id:与name属性一样,但是名字不能重复。建议使用name。
Scope:singleton(默认值) 单例对象
在spring中只创建一个实例化对象
Prototype: 多例原型
在spring中创建多个对象,一般我们不会指定为多例对象,但是如果将来整合structs2整合的时候,需要指定为多例,多例时,web容器启动时,不会创建该对象,每次使用时创建一次,即使用一次创建有一次。
Init-method:
创建一个方法作为生命周期的初始化方法,spring会在创建对象的时候调用该方法。
Destory-method:
创建一个方法作为生命周期的销毁方法,spring会在销毁对象的时候调用该方法。
2、spring容器创建对象及注入
首先创建实例对象,get和set方法就省略了:
public class Admin {
private String name;
private String password;
private Car car;
}
public class beanFactory {
public static Admin getStaticAdmin(){
Admin admin = new Admin();
return admin;
}
public Admin getAdmin(){
Admin admin = new Admin();
return admin;
}
}
public class Car {
private String color;
private String name;
}
public class CollectionDemo {
private List list;
private Map map;
private Properties properties;
private Object[] arr;
}
空构造方法创建对象
<bean name="admin" class="com.hui.pojo.Admin" scope="singleton" init-method="initMethod" destroy-method="destroyMethod">
<!-- 普通成员变量的赋值注入 -->
<property name="name" value="admin"></property>
<property name="password" value="123123"></property>
<!-- 对象类型的成员变量注入 -->
<property name="car" ref="car"></property>
</bean>有参构造方法创建对象
<bean name="admin1" class="com.hui.pojo.Admin" >
<!-- 有参构造方法 -->
<constructor-arg name="name" value="xiaoming"></constructor-arg>
<constructor-arg name="password" value="123"></constructor-arg>
<constructor-arg name="car" ref="car"></constructor-arg>
</bean>静态工厂创建
<bean name="admin2" class="com.hui.pojo.beanFactory"
factory-method="getStaticAdmin">
<property name="name" value="admin"></property>
<property name="password" value="jnmd1703"></property>
<property name="car" ref="car"></property>
</bean>实例工厂创建
<bean name="adminFactory" class="com.hui.pojo.beanFactory"></bean>
<bean name="admin3" factory-bean="adminFactory" factory-method="getAdmin">
<property name="name" value="admin"></property>
<property name="password" value="jnmd1703"></property>
<property name="car" ref="car"></property>
</bean>
car对象
<bean name="car" class="com.hui.pojo.Car">
<property name="color" value="骚气红"></property>
<property name="name" value="自行车"></property>
</bean>- 可以导入其他配置文件
<import resource="applicationContext2.xml" />
复杂类型的注入
<bean name="collection" class="com.hui.pojo.CollectionDemo">
<!-- 数组的注入 --> <property name="arr"> <array> <value>haha</value> <value>xixi</value> <value>baga</value> </array></property><!-- Map的注入 --><property name="map"> <map> <entry key="url" value="localhost:8080"></entry> <entry key="username" value="admin"></entry> </map></property><!-- List注入 --><property name="list"> <list> <value>html</value> <value>javascript</value> <value>css</value> </list></property><!-- properties注入 --><property name="properties"> <props> <prop key="username">zhangsan</prop> <prop key="password">j1n7m0d3</prop> </props></property>
- Spring的环境搭建与注入
- Java?Spring环境搭建及注入
- 搭建与测试Spring的开发环境
- 搭建与测试Spring的开发环境
- 搭建与测试Spring的开发环境
- apache shiro与spring的环境搭建
- 搭建与测试Spring的开发环境
- Spring环境搭建之:控制反转(IoC Inversion of Control)与依赖注入(DI Depenency Injection)
- Spring环境搭建之:控制反转(IoC Inversion of Control)与依赖注入(DI Depenency Injection)
- spring自学笔记-搭建与测试Spring的开发环境
- Spring的环境搭建
- Spring环境的搭建
- spring环境的搭建
- spring的环境搭建
- spring的ioc与注入
- 搭建和配置Spring与jdbc整合的环境
- 搭建和配置Spring与Hibernate整合的环境
- (2)搭建与测试 Spring 的开发环境
- 大话遗传算法(含Matlab代码)
- 修改Request的请求路径
- 会话技术 Cookie&Session
- Python基础教程第八章学习笔记——异常
- mysql存储过程几个小案例
- Spring的环境搭建与注入
- hadoop文件上传解析
- linux下ffmpeg安装
- Objective-C的内省
- hackerrank Lucky Numbers(扩展gcd/规律)
- C语言编程代码架构搭建——代码分层
- Linux下ffmpeg的完整安装
- 使用MySQL Workbench进行数据库设计——MySQL Workbench使用方法总结
- 五分种学会用TPYBoard