黑马程序员技术交流社区
标题: 【石家庄校区】spring总结 [打印本页]
作者: 水煮鱼000 时间: 2019-7-7 10:07
标题: 【石家庄校区】spring总结
SpringSpring概述Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核。
提供了展现层 SpringMVC和持久层 Spring JDBCTemplate以及业务层事务管理等众多的企业级应用技术
Spring的优势方便解耦,简化开发
AOP 编程的支持
声明式事务的支持
方便程序的测试
spring快速入门①导入 Spring 开发的基本包坐标
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
</dependencies>
②编写 Dao 接口和实现类
③创建 Spring 核心配置文件,applicationContext.xml
④在 Spring 配置文件中配置 UserDaoImpl
<beanid="userDao" class="com.itheima.dao.impl.UserDaoImpl"/>
id:Bean实例在Spring容器中的唯一标识
class:Bean的全限定名称
scope:指对象的作用范围,singleton默认值,单例的
⑤在servlet使用 Spring 的 API 获得Bean 实例
Bean实例化三种方式1) 使用无参构造方法实例化
它会根据默认无参构造方法来创建类对象,如果bean中没有默认无参构造函数,将会创建失败
<bean id="userDao"class="com.itheima.dao.impl.UserDaoImpl"/>
2) 工厂静态方法实例化
工厂的静态方法返回Bean实例
public class StaticFactoryBean {
public static UserDaocreateUserDao(){
return new UserDaoImpl();
}
}
<beanid="userDao" class="com.itheima.factory.StaticFactoryBean"
factory-method="createUserDao" />
3) 工厂实例方法实例化
工厂的非静态方法返回Bean实例
public class DynamicFactoryBean {
public UserDao createUserDao(){
return new UserDaoImpl();
}
}
<beanid="factoryBean"class="com.itheima.factory.DynamicFactoryBean"/>
<bean id="userDao" factory-bean="factoryBean"factory-method="createUserDao"/>
Bean的依赖注入set方法
在UserServiceImpl中添加setUserDao方法
public class UserServiceImpl implements UserService {
private UserDao userDao;
public voidsetUserDao(UserDao userDao) {
this.userDao= userDao;
}
@Override
public void save() {
userDao.save();
}
}
配置Spring容器调用set方法进行注入
<bean id="userDao"class="com.itheima.dao.impl.UserDaoImpl"/>
<bean id="userService"class="com.itheima.service.impl.UserServiceImpl">
<property name="userDao"ref="userDao"/>
</bean>
Bean的依赖注入的数据类型普通数据类型
引用数据类型
集合数据类型
引入其他配置文件(分模块开发)将部分配置拆解到其他配置文件中,而在Spring主配置文件通过import标签进行加载
<importresource="applicationContext-xxx.xml"/>
getBean()方法使用ApplicationContextapplicationContext = newClassPathXmlApplicationContext("applicationContext.xml");
UserService userService1 = (UserService)applicationContext.getBean("userService");
UserService userService2 =applicationContext.getBean(UserService.class);
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |