答辩问题记录

答辩问题记录(一)

Mybatils

  • Mybatils是一个持久层的框架,是用java编写的。
  • 封装了jdbc操作的很多细节
  • 用XML或者注解方式
  • 使用了ORM思想实现了结果集的封装

ORM: Object Relational Mapping (对象关系映射)
就是把数据库表和实体类以及实体属性对应起来,做到实体类中的属性和数据库表的字段名称保持一致。

Hibernate:Hibernate是当前最流行的ORM框架之一,对JDBC提供了较为完整的封装。Hibernate的O/R Mapping实现了POJO 和数据库表之间的映射,以及SQL的自动生成和执行。
Mybatis:Mybatis同样也是非常流行的ORM框架,主要着力点在于 POJO 与 SQL 之间的映射关系。然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定 POJO 。相对Hibernate“O/R”而言,Mybatis 是一种“Sql Mapping”的ORM实现。

例如:

配置MySQL的环境在resources资源文件下
useruser
idid
user_nameuser_name
总之:使用Mybatils后,只需要关注SQL语句即可

代理的方式管理资源

Mybatils处理调用javabean过程:

  1. 读取配置文件
  2. 创建SQLSessionFactory工厂
  3. 使用工厂生产SQLSession对象
  4. 使用SQLSession常见Dao接口的代理对象
  5. 使用代理对象执行方法
  6. 释放资源

在实际开发中,越简便越好。所以都采用不实现Dao接口的方法。

Spring 5

  • Mybatils是一个持久层的框架,是用java编写的。

工厂:

工厂:负责给我们从容器中获取指定对象的类。这个时候我们获取对象的方式发生改变。原:new 方式,主动获取。
现在:工厂为我们查找或创建,是被动的。
——被动接收的思想就是控制反转,它是Spring框架的重要特征之一。Object Relational Mapping (对象关系映射)
就是把数据库表和实体类以及实体属性对应起来,做到实体类中的属性和数据库表的字段名称保持一致。

控制反转(IOC)——解耦作用
依赖注入
依赖查找
  • 可以使用XML方式或者注解方式实现。
  • 依赖注入
    • 构造函数注入
    • set方法注入(常用)
    • 注解方式注入
      • @AutoWired
面向切面编程(AOP)——降低业务间的耦合度

Aspect Oriented Programming

  • 通过预编译和运行期间的动态代理
  • 函数式编程(业务隔离)的一种衍生泛型
  • 对业务逻辑进行隔离。降低业务间的耦合度。

简而言之:把程序重复代码抽取出来,在需要执行的时候,使用动态代理技术,在不修改源码的基础上,对我们的已有方法进行增强。

动态代理技术:

  1. 特点:字节码随用随常见,随用随加载
  2. 动态代理常用的两种方式
    • 基于接口的动态代理
    • 基于子类的动态代理

SpringMVC

  • SpringMVC是一个基于组件方式执行流程的框架
  • 前端控制器(Servlet)
  • 处理器映射器
  • 处理器适配器
  • Handler处理器
  • 视图解析器
  1. SpringMVC的入口是Servlet,基于方法设计的,处理Ajax的请求比较方便。

Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

SpringBoot

  • SpringBoot不是什么新的框架,它默认配置了很多框架的使用方式,就像 Maven整合了所有的jar包,SpringBoot整合了所有的框架。
  • SpringBoot不是Spring官方的框架模式,而是一个团队在Spring 4.0 版本上二次开发并开源公布出来的。简而言之,SpringBoot就是一个轻量级,简化配置和开发流程的web整合框架。

SpringBoot和Spring的区别:

  • SpringBoot可以建立独立的Spring应用程序。
  • 约定大于配置
  • Spring Boot可以建立独立的Spring应用程序;
  • 内嵌了如Tomcat,Jetty和Undertow这样的容器,也就是说可以直接跑起来,用不着再做部署工作了;
  • 无需再像Spring那样搞一堆繁琐的xml文件的配置;
  • 可以自动配置(核心)Spring。SpringBoot将原有的XML配置改为Java配置,将bean注入改为使用注解注入的方式(@Autowire),并将多个xml、properties配置浓缩在一个appliaction.yml配置文件中。
  • 提供了一些现有的功能,如量度工具,表单数据验证以及一些外部配置这样的一些第三方功能;
  • 整合常用依赖(开发库,例如spring-webmvc、jackson-json、validation-api和tomcat等),提供的POM可以简化Maven的配置。当我们引入核心依赖时,SpringBoot会自引入其他依赖。

MySQL和SQLServer

  1. 性能:

MySQL的读写性能确实一流,即使针对大数据量也没问题,但前提是必须使用简单查询,就是最好不要使用函数/join/group等方式查询。而SQLServer的简单查询速度不如MySQL,但复杂查询时,性能降低的不多,可见,SQLServer的查询优化做的可能更好

但你可以通过针对性的表结构设计来避免MySQL进行复杂查询(多冗余,少关联)

插入速度也很快。为了提高性能,我甚至使用了不用日志的方式,确实快,哪怕大量并发也没问题
2. 安全性:
MySQL的安全配置比较透明简单,权限明确,不易出漏洞。而SQLServer的用户配置是和ϖ作系统绑定的,很容易出问题。此外由于不是开源系统,1433端口暴露的安全问题谁也说不清,

可以提问

  1. 还可以问岗位晋升空间及渠道!岗位职责与工作!谁带等!这些都是表现你积极性的东西,不要觉得不该问!

刚入这个行业,我想问问岗位晋升的空间以及渠道,有没有前辈带领,平时遇到问题可以问那些前辈?薪资方面也可以问,还有五险什么时候交

  1. 薪资(五险啥时候交,一年几次调薪,有没有加班费)
  2. 公司的发展历程及企业文化。
  3. 对新人是如果培养的
    空闲时间 使用云服务器作些项目练练手,白嫖 小型服务器的地方:
    三丰云,用着用还可以 附上连接:三丰云
    白嫖免费虚拟主机
  • 19
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值