java框架

一、MyBatis

1. mybatis是一款持久层框架,支持定制化sql、存储过程、高级映射,避免了大量的jdbc代码和手动设置参数,以及获取结果集。

2. ${} 和 #{}

${} 是字符串替换,#{}是预编译处理,PreparedStatement的set赋值

使用#{}可以有效的避免sql注入问题。

3. mybatis的步骤

        1. 创建sqlSessionFactory工厂对象

        2. 根据sqlSessionFactory创建sqlSession对象

        3. sqlSession对象执行sql语句

        4. session.commit   5. session.close

4. resultType 和 resultMap的区别

        当实体类与数据库中的字段一一对应时,可以直接使用resultType进行映射。

        当实体类与数据库中字段名不一致时,可以使用resultMap进行一一配置。

 5. mybatis中的动态标签

        if      where     forEach    include   set

6. mybatis的缓存机制

        两层缓存,第一层缓存是sqlSession级别的,默认开启,无法关闭,当session.close .flush时,会删除。第二次是mapper级别的,默认关闭,需要手动开启配置,需要实现Serializable序列化接口。

二、Spring 框架

两大核心 ioc控制反转和 aop切面编程

ioc控制反转,将对象的控制权交给spring,spring创建bean实例放入spring容器,当我们需要使用对象时,直接去spring容器中获取。

aop切面编程,和面向对象继承对应,继承是纵向关系的,aop切面编程是横向关系的,将对业务没有太大影响,并且多个模块需要使用到的封装成aop切面,使用动态代理的方式创建aop对象,在切点处进行增强。

2. springAop的动态代理:jdk动态代理   cglib动态代理

3. spring声明周期:

        1.实例化bean

        2. ioc注入,按照spring上下文对bean进行配置

        3. beanNameAware接口,调用setBeanName

        4. beanFactoryAware接口,调用setBeanFactory

        5. ApplicationContextAware接口,调用sertApplicationContext

        6. 关联BeanPostProcessor,调用postProcessBeforeInitialization

        7. 执行配置的 init-method 

        8. BeanPostProcessor,postAfterInitialization

        9. 清理,如果实现了DisposableBean,调用destroy

        10. 销毁,如果配置了 destroy-method,则调用

4. spring bean的作用于

        singleton、prototype、request、session 、global-session

5. beanFactory和ApplicationContext的区别

         beanFactory是spring最顶层接口,封装了spring的基本方法,比较难调用,bean是在使用的时候才去初始化。

        ApplicationContext是beanFactory的子接口,启动时,直接初始化。

6. spring中的设计模式

        工厂模式、单例模式、代理模式、模板模式、观察者模式

7. spring事务

        spring对事务的支持来自于数据库对事务的支持,只有数据库支持事务时,spring才能提供事务支持。

        编程式:commit、rollback

        声明式:transactional、aop配置

8. spring的通知

        前置、后置、异常、最终

9. spring Baen默认是单例的,但是也可以通过配置来变成多例。

        单例bean 非线程安全,bean中有可变的成员变量时。 解决:避免可变的成员变量、定义threadlocal..

10. @Resource   @Autowired

@Resource 先根据id配置,如果名称没有再根据类型配置,如果配置了 name 属性 则只能根据id注入。

@Autowired

        根据类型注入,如果有多个类型,则根据属性名注入。

        结合@Qualifier 根据id寻找

11. 常用注解

        @Component、@Controller、@Service、@Repository

        @Scope:设置spring 作用于

        @PostConstruct 、 @ProDestroy  创建后和销毁方法。

        @Value 简单的属性依赖注入

        @Autowired:对象属性注入

        @Qualifier 

        @Resouce 属性名称注入

        @ComponentScan:组件扫描

        @Bean  返回值放入容器

        @PropertySource:引入其他properties配置文件

        @Import:在一个配置类中导入其他配置类的内容

        @Configuration  配置类。

        @Transactional : 事务

三、SpringMVC

        基于java实现的MVC设计模式的web轻量级框架。mvc-模块、视图、控制器

1. 主要组件

        前端控制器:dispatcherServlet:接收请求、响应结果。

        处理器映射器:handlerMapping:根据url查找handler

        处理器适配器:handlerAdapter:执行handler

        处理器:handler:处理业务逻辑java类

        视图解析器:viewResolver:进行视图解析

        视图:view 

2. 流程

       1. 用户请求到 dispatcherServlet ,dispatcherServlet调用handlerMapping去寻找handler,找到后生成处理器对象及处理器拦截器返回给dispatcherServlet。

        2. dispatcherServlet 调用 handlerAdapter,handlerAdapter调用自定义的处理器Controller,controller将处理结果返回。

        3. dispatcherServlet 将 modleAndView 传给 viewResolver,解析参数转化为物理视图返回。

        4. dispatcherServlet进行物理视图渲染并将结果返回。

3. springMvc 转发 和 重定向,在返回值前添加

        转发:forward

        重定向:redirect 

4. 常用注解:

        @RequestMapping:处理请求的url映射

        @RequestBody:接收json数据

        @ResponseBody:返回json数据

        @PathVariable:从路径获取参数

        @RequsetParam:对传入参数进行限制  value、required、defaultValue

        @ControllerAdvice:全局处理异常类

        @ExceptionHandler 标记在异常类上,表示处理异常的类型

5. 统一异常处理:

        1. 实现HandlerExceptionResolver接口,并实现异常处理方法,交给spring容器

        2. 在类上加注解 @ControllerAdvice表示是一个异常处理类,@ExceptionHandler 表示处理类型。

6. 转发数据传递给前台

        1. request域:request.setAttirbuate("name", value);

        2. model传值:model.addAttribuate("name", value);

        3. ModelMap传值:modelmap.put("name",value);

        4. ModelAndView :mv.addObject("name",value);mv.setView("success");return mv;

7. 拦截器步骤:

        1. 自定义拦截器,实现HandlerInterceptor接口

                preHandler方法:返回true则继续请求

                postHandle方法:调用完处理器后调用该方法

                afterCompletion:前端控制器渲染界面完成后调用该方法。

        2. 在配置文件中配置

8. 文件上传:

        加入commons-fileupload 包,解析器id属性为:multipartResolver,后端接收数据类型为:MultipartFile 参数名与前端一致。

        三要素   form表单:post  、 enctype属性:multipart/form-data、type属性为file的input标签。

     

四、 Spring Boot  

        spring子项目,简化开发。

        优点:版本锁定、起步依赖、自动配置、内置Tomacat

SpringBoot 的启动器:starter

1. 配置文件

applicaiton.yml 和 bootstrap.yml

bootstrap由ApplicaiontCaontext加载,加载比较快,属性不能被覆盖

2. 注解:

 @SpringBootApplicaiton:封装了@SpringBootConfiguration+@EnableAutoConfiguration +@ComponentScan

 @EnableScheduling 是通过@Import 将Spring 调度框架相关的bean 定义都加载到
IoC 容器
 @MapperScan:spring-boot 支持mybatis 组件的一个注解,通过此注解指定mybatis
接口类的路径,即可完成对mybatis 接口的扫描
 @RestController 是@Controller 和@ResponseBody 的结合, 一个类被加上
 @RequestMapping,我们都需要明确请求的路径.
 @GetMappping,@PostMapping, @PutMapping, @DeleteMapping 
 @PathVariable:路径变量注解,用{}来定义url 部分的变量名.
 @Service 这个注解用来标记业务层的组件,我们会将业务逻辑处理的类都会加上这个
注解交给spring 容器。事务的切面也会配置在这一层。
 @Component 和spring 的注解功能一样, 注入到IOC 容器中.
 @ControllerAdvice 和@ExceptionHandler 配合完成统一异常拦截处理.

五、 SpringCloud

SpringCloud 是一系列框架的集合,集成SpringBoot,提供很多优秀服务:服务发现
和注册,统一配置中心, 负载均衡,网关, 熔断器等的一个微服务治理框架.

1. 核心组件

 Eureka: 注册中心, 服务注册和发现
 Ribbon: 负载均衡, 实现服务调用的负载均衡
 Hystrix: 熔断器
 Feign: 远程调用
 Zuul: 网关 或者  Gateway
 Spring Cloud Config: 配置中心

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值