Spring框架介绍
Spring框架是一个轻量级的企业级应用框架
通过它可以贯穿表现层、业务层、持久层。集成方便,简单易用,具有如下特点:
Spring框架特色
Spring设计理念
是面向Bean的编程
Spring两大核心技术
控制反转(IoC:Inversion of Control)/依赖注入(DI:Dependency Injection)
面向切面编程(AOP:Aspect Oriented Programming)
如何使用spring
第一步,引入依赖
Spring的核心依赖为spring-context,我们在pom.xml中引入如下依赖。
<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>6.2.0</version></dependency>
第二步,添加配置文件
在resources目录下,添加applicationContext.xml文件,在该文件中配置如下内容:
<?xml version="1.0" encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsd"><bean id="card" class="com.entity.Card"><property name="id" value="1"/><property name="desc" value="学生卡"/></bean></beans>
如上配置,我们需要在com.entity包下,创建类Card,该类有id和desc两个属性,内容如下:
package com.entity;
public class Card {private String id;private String desc;public String getName() {return name;}public void setName(String name) {this.name = name;}public Card(String desc, String id) {this.desc = desc;this.id = id;}public Card() {}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;}public String getId() {return id;}public void setId(String id) {this.id = id;}
}
第三步,编写测试代码
随便找一个包下,创建Test类,在Test类中编写main方法,代码如下:
public class Test {public static void main(String[] args) {//加载spring配置ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");Card card = (Card) context.getBean("card");}
}
如此,我们就使用spring启动了代码,并使用了spring容器获取了Card对象。
控制反转和依赖注入
在没有spring之前,用户模块业务层调用数据层用户模块业务层与数据层高度耦合,怎么解决?
原因:
上次的例子就用到了控制反转和依赖注入
控制反转:创建对象的控制权转移,是一种程序设计思想
依赖注入:将依赖的对象注入到需要的类中去,是"控制反转"设计思想的具体实现方式
实例化bean的方式
注入方式
注入方式常用的有构造方式注入和setter方式注入,例子如下:
不同数据类型注入
spring支持不同数据类型的注入,具体如下:
示例如下:
<bean id="card" class="com.dts.entity.Card"><property name="id" value="1"/><property name="desc" value="学生卡"/><constructor-arg index="0" value="张三的学生卡"/><property name="list"><list><value></value><null/><value>李四</value></list></property><property name="map"><map><entry key="1" value="张三"/><entry key="2" value="李四"/></map></property></bean><bean id="student" class="com.dts.entity.Student"><property name="card" ref="card"/><property name="id" value="1"/><property name="name" value="张三"/></bean>
如此,我们就了解了spring的最基础用法,可以通过spring开发简单的程序。