sping

spring MVC工作原理

sping_第1张图片
客户端发送请求:
前端控制器 :拦截客户端发送的所有请求(通过(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 文件中的非常类似
类似kv对形式

@RequestMapping

用来映射web请求(访问路径和参数),处理类和方法的。可以注解在类和方法上,注解在方法上的

@RequestMapping(“abc”)等价于http://localhost:8080/abc

Spring IOC控制反转

sping_第2张图片

把创建对象的权利交给框架。
new对象,会提高类和类之间的依赖关系,即代码之间的耦合性。
通过springIOC去创建对象降低了代码的耦合性

springIOC原理

sping_第3张图片

1.获取spring的核心容器对象_
容器就会扫描"applicationContext.xml核心配置文件
读取到

2.applicationContext.xml中会配置

获取到class属性中类的全路径,利用反射创建该类的对象
通过spring的核心容器获取EmpService接口的子类实例
返回值是Object 所以要强转

3.输出就得到了实现类的地址值
利用xml文件配置 将实现类交给spring创建 管理
如果后面实现类需要修改
就可以直接在xml配置中改

4.不需要自己创建,而是通过框架直接获取即可
省去了new对象的过程,自然就降低类和类之间的依赖关系
就降低了耦合性

你可能感兴趣的:(java)