spring简单入门
2017-02-16 22:12
183 查看
Spring入门
概述
Spring是一个开源的框架,2003年兴起的轻量级,一站式框架。针对EE开发分成三层结构
Web层:springMVC业务层:spring(ioc)
持久层:jdbcTemplate
Spring的核心有两部分
(1)IOC 控制反转:--之前的操作,想要调用类里面的方法(不是静态方法),就要创建类对象,由类对象调用方法实现。
--ioc就是把对象的创建,不是在代码中new出来,而是通过spring配置创建。
作用:实现类与类之间的解耦合。
底层原理:
-- xml配置文件+dom4j+工厂设计模式+发射
(2)aop 面向切面
--在不修改源代码的情况下,扩展功能,通过配置的方式实现。
Spring的简单入门
(1)创建spring的配置文件,建议放在src下面,名称随便写。(2)在配置中引入约束
<beansxmlns="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">
(3)编写相关的类
public class User {
public void add(){
System.out.println("add............."+name);
}
(4)在配置文件中配置对象的创建
<bean id="user" class="com.ioc.User" scope="prototype"></bean>
(5)测试
@Test
public void demo1(){
ApplicationContext context =
new ClassPathXmlApplicationContext("bean1.xml");
User user = (User) context.getBean("user");
user.add();
}
--底层原理
请看图片
Bean实例化的三种方式
(1)创建对象,调用类中的无参构造方法实现(重点)<bean id="user" class="com.ioc.User" scope="prototype"></bean>
<bean id="user" class="com.ioc.User" init-method="init" destroy-method="destory"></bean>
-- init-method="init":在对象创建之后,也就构造方法执行之后 ,具体方法执行之前
-- destroy-method="destory":在容器关闭的时间执行
(2)使用静态工厂
--1.创建工厂类,在工厂类提供静态的方法,这个方法返回类对象
--2.调用工厂类的方法时候,直接使用类名.方法名称可以调用
(3)使用实例工厂
--1.创建工厂类,在工厂类里面提供普通的方法,这个方法返回类对象
--2、调用工厂类的方法时候,创建工厂类对象,使用对象调用方法
Ioc和di的区别
1 IOC: 控制反转(1)把对象的创建交给spring进行管理
2 DI: 依赖注入
(1)创建对象过程中,向类里面的属性中设置值
3 ioc和di关系:
(1)依赖注入不能单独存在,在控制反转基础之上完成
(2)注入类里面属性值,不能直接注入,创建类的对象再完成注入
BeanFactory 和 ApplicationContext 的区别:
BeanFactory :是在 getBean 的时候才会生成类的实例.ApplicationContext :在加载 applicationContext.xml 时候就会创建.
Spring配置文件bean标签常用的属性
1.id属性:根据id属性值得到配置对象,
(1)id属性值不能相同的
(2)id属性值不能有特殊符号
2.class属性:要创建对象的类的全路径
3.scope属性:
(1)singleton:创建对象是单例,默认值。
(2)prototype:创建对象是多实例
(3)request:创建对象之后,把对象放到request域
(4)session:创建对象之后,把对象放到session域
(5)globalSession:创建对象之后,把对象放到globalSession里面
4.name属性
(1)name属性功能和id属性一样的,可以配置多个
(2)name属性和id属性区别:
- 在id属性值里面不能特殊符号
- 在name属性值里面可以添加特殊符号
Spring 的
Bean 的属性注入:
【构造方法的方式注入属性】<!-- 第一种: 构造方法的方式 -->
<bean id="propertyDemo2" class="com.property.Demo2">
<constructor-arg name="address" value="渣滓洞"></constructor-arg>
</bean>
【set 方法的方式注入属性】
<!-- 第二种: set 方法的方式 -->
<bean id="demo1" class="com.property.Demo1">
<!-- 使用propety标签注入属性值
name属性:类属性名称
value属性:注入的值
-->
<property name="name" value="东方不败"></property>
</bean>
Spring
的属性注入: 对象类型的注入:
<!-- 注入对象类型的属性 -->
<bean id="userDao" class="com.dao.UserDao"></bean>
<bean id="userService" class="com.service.UserService">
<!-- 在service里面注入dao属性
name属性:service里面dao属性的名称
注入dao对象,不能写value属性,写ref属性:dao配置bean的id值
-->
<property name="userDao" ref="userDao"></property>
</bean>
Spring 的分配置文件的开发
1.如果同时引入外部,并且两个外部文件有同id的bean,后加载会覆盖之前2.如果在同一个配置文件,定义两个同id的bean,是不行的,用的时候会报错
1.<!--一个配置文件引入另外的spring配置文件(常用) -->
<import resource="bean2.xml"/>
2.创建工厂的时候加载多个配置文件:
ApplicationContext applicationContext =new ClassPathXmlApplicationContext("applicationContext.xml","applicationContext2.xml");
相关文章推荐
- Spring 入门(一个简单的例子)
- 最简单的spring入门示例
- 超简单Spring入门 (三) Template
- Spring AOP 简单入门示例
- Spring 入门(一个简单的例子)
- Spring 入门(一个简单的例子)--适合初学者
- Spring_AOP_简单入门示例
- 超简单Spring入门(一)Dependency Injection
- JSP的那些事儿(9)----最简单的Spring入门
- 最简单的spring-mvc入门示例,绝对原创
- 最简单的spring入门示例
- 入门也流行简单 最简单的Spring入门示例
- 最简单的Spring入门示例
- 超简单Spring入门 (二) Aspect-oriented Programming
- 入门也流行简单 最简单的Spring入门示例[转]
- AOP入门的简单例子(Spring AOP实现)
- 简单的Spring入门例子
- 入门也流行简单 最简单的Spring入门示例
- Spring入门+简单原理
- 最简单的spring-mvc入门示例,绝对原创