1.Spring定义
轻量级框架, Java EE的春天,当前主流框架
什么是spring?(面试题)
Spring是一个开源的轻量级的java开发框架。是一种简化应用程序的开发。
在spring出来之前,service层调用dao层都是用new的方式。
在Spring出来之后,service层和dao层都会放在spring容器去管理,
这是spring的第一种特性,我们称之为IOC,控制反转。
Spring还有一种特性, 我们称之为AOP,大白话,“面向切面”,
说白了就是专门的人干专门的事。
在项目很多公有的或是要被重复被调用的模块可以被抽取出来,
利用的就是AOP的特性,例如日志模块。
2.Spring特性
(1)IOC (控制反转,DI:依赖注入)
DI 是 IOC 的具体实现
IOC框架使用依赖注入作为实现控制反转的方式
(2)AOP实现 (面向切面编程)
面试题:spring –IOC,DI体系整理
IOC是一种思想 不负责具体实现 是通过DI依赖注入来实现的
其中又包括各种注入如set注入(属性注入,常见)==》
包括对象、引用类型、属性和属性值等,
还有构造器注入(了解)、注解注入(常见)、
静态工厂注入,动态工厂注入、方法参数注入等等
注入的时候可以采用手工注入 ref(引入),
也可以使用自动注入(非ref)包括byName和byType。
3.Spring组成部分
Spring中的核心思想是什么?(面试题)
在Spring中万物都是Bean组件
(面向Bean编程)(替代new的)
4.Spring理念
面向Bean的编程
5.Spring优势(面试题)
- 低侵入式设计
- 独立于各种应用服务器
- 依赖注入特性将组件关系透明化,降低了耦合度
- 面向切面编程特性允许将通用任务进行集中式处理
- 与第三方框架的良好整合
6.IOC特性
A.非IOC思想
(1)创建maven工程,java,resources,test,并配置路径参数
(2)UserService.java
public interface UserService { void add(); }
(3)UserServiceImpl
public class UserServiceImpl implements UserService {
@Override
public void add() { System.out.println("hello world..."); }
}
(4)TestUserServiceImpl.java
import cn.kgc.service.UserServiceImpl;
import org.junit.Test;
public class TestUserServiceImpl {
@Test
public void testAdd(){ new UserServiceImpl().add(); }
}
B.IOC思想
好处: 少用new 因为要开辟空间
1 2 3 步与前面一致 导入依赖
(4)pom.xml
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.5</version>
</dependency>
1
(5)spring配置文件applicationContext.xml
NEW – XML Configurati