Spring学习(1)
概念:Spring是一个企业级开发框架,是软件设计层面的框架,优势在于可以将应用程序进行分层,开发者可以自选组件
两大核心机制:
id | Englis | 中文 |
---|---|---|
1 | IOC/DI | 控制反转/依赖注入 |
2 | AOP | 面向切面编程 |
IOC简介:
概念:IOC完成的事情是原先由程序员主动new实例化对象的事情,转交给Spring负责。
- 控制:控制类的对象
- 反转:交给Spring负责
作用:
- 解耦,程序员不需要管理对象,解除了对象管理和程序员之间的耦合。
- 管理对象
Spring环境搭建步骤:
1、导入jar
- 四个核心包一个日志包
2、在src下新建配置文件applictionContext.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.xsd">
<!--
id表示 获取到对象的标识
class表示 创建哪个类的对象
-->
<bean id="p" class="cn.ldc.spring.Person">
<constructor-arg index="0" name="name" value="张三"></constructor-arg>
<constructor-arg index="1" name="age" value="22"></constructor-arg>
</bean>
</beans>
3、使用
//读取xml文件,创建xml文件中指定的所有对象
ApplicationContext ac= new ClassPathXmlApplicationContext("applicationContext.xml");
//从ApplocationContext容器中拿到Person对象
Person p = ac.getBean("p",Person.class);
System.out.println(p);
//获取ApplicationContext容器中所有的对象名称
String[] names = ac.getBeanDefinitionNames();
for(String name:names) {
System.out.println(name);
}
Spring创建对象
1、通过构造方法:
- 通过无参构造:默认情况
- 通过有参构造:需要明确配置
- 1、在类中提供构造方法
- 2、在appcationContext.xml中设置调用哪个构造方法创建对象 ,如果设定的条件匹配多个构造方法,执行最后的构造方法
示例:
<bean id="p" class="cn.ldc.spring.Person">
<constructor-arg index="0" name="name" type="java.lang.String" value="张三"></constructor-arg>
<constructor-arg index="1" name="age" type="int" value="22"></constructor-arg>
</bean>
精确锁定某构造方法:利用 index 、name、type 属性,如上示例。
not end…