文章目录
1、Spring简介
1.1 Spring概念
Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IoC(Inverse Of Control:反转控制)和AOP(Aspect Oriented Programming:面向切面编程)为内核
提供了展现层SpringMVC、持久层Spring JDBCTemplate以及业务层事务管理等众多的企业及应用框架
1.2 Spring优势
-
方便解耦,简化开发
通过Spring提供的Ioc容器,可以将对象间的依赖关系交由Spring进行控制,避免硬编码所造成的过度耦合,用户也不必再为单例模式类,属性文件解析等底层的需求编写代码,可以专注于上层应用
-
AOP编程支持
方便面向切面编程,许多不容易用传统OOP实现的功能可以通过AOP轻松实现
-
声明式事务的支持
避免了单调烦闷的事务管理代码,通过声明式方式灵活地进行事务管理,提高开发效率和质量
-
方便集成框架
Spring对各种优秀框架(Struts、Hibernate、Hessian、Quartz等)的支持
-
降低JavaEE API的使用难度
Spring对JavaEE API(如JDBC、JavaMail、远程调用等)进行了薄薄的封装层,降低这些API的使用难度
1.3 Spring体系结构
2、Spring快速入门
1、Spring开发步骤
- 导入Spring开发的基本jar包
- 编写Dao接口和实现类
- 创建Spring核心配置文件
- 在Spring配置文件中配置UserDaoImpl
- 使用Spring的API获得Bean实例
-
导入Spring开发的基本jar包
pom.xml下添加
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.5.RELEASE</version> </dependency>
-
编写Dao接口和实现类
public class UserDaoImpl implements UserDao { @Override public void save() { System.out.println("save running...."); } }
-
创建Spring核心配置文件
-
在Spring配置文件中配置UserDaoImpl
<bean id="userDao" class="com.heima.dao.impl.UserDaoImpl"></bean>
-
使用Spring的API获得Bean实例
public static void main(String[] args) {
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao = (UserDao) app.getBean("userDao");
userDao.save();
}
2、Spring相关API
ApplicationContext的实现类
-
ClassPathXmlApplicationContext
从类的根路径下加载配置文件,推荐
-
FileSystemXmlApplicationContext
从磁盘路径下加载配置文件,可以加载在磁盘任意位置的配置文件
-
AnnotationConfigApplicationContext
当使用注解配置容器对象时,需要使用此类创建Spring容器,其用来读取注解
getBean()方法
此方法可以传入配置文件中bean的id值,也可以传入bean的class类型
public Object getBean(String name) throws BeansException {
this.assertBeanFactoryActive();
return this.getBeanFactory().getBean(name);
}
如果有配置文件中有多个该类Bean对象,则需要传字符串id值来区分不同对象
UserService userService = (UserService)app.getBean("userService");
public <T> T getBean(Class<T> requiredType) throws BeansException {
this.assertBeanFactoryActive();
return this.getBeanFactory().getBean(requiredType);
}
如果整个程序中只有一个Bean对象,可以使用如下方法
UserService userService = app.getBean(UserService.class);