共计 1355 个字符,预计需要花费 4 分钟才能阅读完成。
spring MVC 工作原理
客户端发送申请:
前端控制器 : 拦挡客户端发送的所有申请(通过(Filter)筛选器)筛选
将后果分发给映射器
映射器通过 url 地址映射寻找相干配置 返回给 sevlet 中的 Handleer 对象
通过 Handleer 对象去匹配具体的 Controller 层的处理器
通过 Controller 调 service 层去解决具体的业务逻辑
业务解决完封装后果集通过 Model 传到前端控制器,前端控制器
将后果传给视图解析器,视图解析器会解析传过来的是什么类型(html,jsp…)
再将后果返回给客户端
spring 罕用正文
1.@Controller @Service @Component(组件)
@Component 标注为一个一般的 spring Bean 类
@Controller 标注为控制器组件类
@Service 标注一个业务逻辑组件类~~~~
标注后 依据类门路会主动扫描 当做 Bean 实例
将其交给 spring 容器治理
2.@Autowired
Spring 提供的工具(由 Spring 的依赖注入工具(BeanPostProcessor、BeanFactoryPostProcessor)主动注入。)
用于为类的属性、结构器、办法 进行注值
@Autowired
private DataSource data;
就能够通过 date 间接去调 DataSource 接口的属性和办法
@Bean
public MyService myService() {
return new MyServiceImpl();
}
@Bean 大多数用在办法上,注解用于通知办法返回值,产生一个 Bean 对象,而后这个 Bean 对象交给 Spring 治理。产生这个 Bean 对象的办法 Spring 只会调用一次,
@Bean 和 Spring 的 XML 文件中的十分相似
<bean id=”myService” class=”com.acme.services.MyServiceImpl”
相似 kv 对模式
@RequestMapping
用来映射 web 申请(拜访门路和参数),解决类和办法的。能够注解在类和办法上,注解在办法上的
@RequestMapping(“abc”)等价于 http://localhost:8080/abc
Spring IOC 管制反转
把创建对象的权力交给框架。
new 对象,会进步类和类之间的依赖关系,即代码之间的耦合性。
通过 springIOC 去创建对象升高了代码的耦合性
springIOC 原理
1. 获取 spring 的外围容器对象_
容器就会扫描 ”applicationContext.xml 外围配置文件
读取到 <bean>
2.applicationContext.xml 中会配置
<bean id="empService" class="com.tedu.service.EmpServiceImpl"></bean>
获取到 class 属性中类的全门路,利用反射创立该类的对象
通过 spring 的外围容器获取 EmpService 接口的子类实例
返回值是 Object 所以要强转
3. 输入就失去了实现类的地址值
利用 xml 文件配置 将实现类交给 spring 创立 治理
如果前面实现类须要批改
就能够间接在 xml 配置中改
4. 不须要本人创立,而是通过框架间接获取即可
省去了 new 对象的过程,天然就升高类和类之间的依赖关系
就升高了耦合性