Sping-Springmvc-Mybatis
Spring(组件粘结,解决松耦合)
1.编写第一个Spring项目
-
1)导入jar包
-
2)IOC:对象的创建,交由Spring容器完成,spring容器创建。applicationContext.xml
-
3)创建实体类,将对象的创建交给spring容器
-
4)测试spring容器启动,并创建得到对象
ApplicationContext context=new ClassPathXmlApplicationContext(“容器”);
Object o1=context.getBean(名称);
2.IOC和DI
IOC:将手动创建对象的工作交给spring容器完成
-
1.spring.xml中配置,有参无参都可以实例化对象
-
2.可以通过注解的方法代替spring配置文件中的写法,实现IOC控制
-
实体类中采用注解:@Component ,@Controller,@Service,@Reposity
-
基于spring容器配置注解的扫描和支持:<context:conponent-scan base-package=“父包”>
-
DI:针对实体类中:属性成员赋值操作
-
1.容器配置写法实现
-
属性必须get\set封装
-
property name=”属性名” value=”属性值” ref=”属性引用”
-
属性的注入:也可以采用注解的方法实现注入:
-
@Resource(name=“对象名”) 根据对象名称进行spring容器查找,并注入
-
@Aurowired 根据类型进行spring容器查找,找到指定类型对象,直接注入
-
-
AOP
面向切面编程:将业务操作与安全、日志、事务结合使用的过程称为面向切面编程
-
静态代理;一种编程方法,对原有功能增强
-
动态代理:将代理类与代理功能进行拆分编写的一种方法
-
1.根据jdk的动态代理接口的实现:InvocationHandle实现动态代理
Object o1=Proxy.newProxyinstance();
-
2.spring 默认切面使用方式
Cligb插件实现动态代理
-
Springmvc
1.Springmvc的加载核心控制器:DispatchServlet
- 初始化方法进行各种组件解析器的加载
2.HandlerMappings核心组件:创建映射
- 将用户请求的地址:用于匹配所有的@RequestMapping注解地址
3.HandlerAdapter适配器:可以负责找到负责调用的Controller对象和方法
- 默认适配器:SimpleControllerhandlerAdapter
4.ViewResolvers:视图解析器,当用户响应试图时
- 用作视图页面的解析展示
所有的用户请求都在DispatcherServlet中的doService实现
-
匹配器的匹配
-
匹配成功后的适配器调用
-
返回结果视图解析器的解析
-
最终由DispatcherServlet完成响应
Mybatis
持久层操作框架:针对jdbc的完美封装,保留了jdbc的sql编写方式,优化了参数绑定,返回封装等缺点,学习成本低
主体架构:
-
sqlMapConfig.xml核心配置文件:体现SqlSesssion,SqlSessionFactory
-
mapper.xml:动态sql语句实现
-
mappedStatement:方便动态加载sql,用于绑定参数,封装返回值
-
DB数据库
Dao层的编写
-
提供接口
-
给接口绑定Mapper.xml实现
-
给service层提供dao层接口的引用
sqlMapConfig.xml核心配置文件和Mapper映射文件的编写
-
传参 parameType
-
返回值resulttype