java框架
Mybaits
防止sql注入:Mybatis持久化底层使用preparedstatemend,在编写sql时使用#{xxx}的方式实现预编译,显示sql参数为?,通过占位置方式替换占位符.或者使用存储过程,如#{name}
而使用${xxx}方式添加实现字符串替换属于静态文件添加,如'${name}'
Struts
struts工作原理:检索匹配请求的actionMap实例--->请求提交表单数据保存在actionForm中---->根据配置是否开启表单数据验证--->ActionServlert根据actionMap映射找到对应的action--->.执行action的execute()的方法返回一个actionForward--->actionServlert请求转发actonForward对象找到指向jsp组件进行页面响应
Spring
spring代理:一种是实现了接口的JDK动态代理,一种是无实现接口的Cglib代理。
spring ioc:ioc控制反转主要强调程序之间的关系是由容器控制,容器控制对象控制了对外部资源的获取,而在传统中对象都是由我们创建获取依赖对象,而在ioc中对象则是容器创建注入依赖对象,对象是被获取的所以称为控制反转。
spring aop:aop面向切面编程,只要是管理层的业务,如日志、权限、事务等。aop将封装好的对象剖开找出其中对多个对象产生影响的公共行为,并将其封装为一个可重用的模块,这个模块就是切面。切面将那些与业务逻辑无关却被多个业务模块共同调用的逻辑提取封装,减少代码重复、降低模块之间耦合、提高了系统的可维护性。
spring DI:DI依赖注入,在程序运行时由外部容器动态将依赖对象注入组件中,简单来说就是当一个对象需要另一个对象时,可以把另一个对象注入到对象中。注入方式:构造注入、set注入。接口注入。
springMVC
工作原理(重要):DispatcherServlet 接受客户端请求 -> 找到HandlerMapping 映射请求对应的 Handler->DispatcherServlet 调用 HandlerAdapter分发器到对应的Handler -> Handler 执行完返回一个ModelAndView ->HandlerAdapter将结果返回 DispatcherServlet -> DispatcherServlet 调用ViewResolver进行视图解析返回具体的view->DispatcherServlet 将得到视图对象返回给用户
springmvc和struts2的区别:①入口:springmvc入口是dispatchServlet,struts2是filter过滤器 ②springmvc基于方法开发一个url对应一个方法,struts2基于类开发
springmvc设置转发和重定向:在返回值前加forwad/redirect:地址
springmvc和ajax相互调用:使用jackson框架将java对象转化为json对象。加入jackson,jar,配置文件中配置json的映射,在接受Ajax方法里面可以直接返回Object,List等,但方法前面要加上@ResponseBody注解
springmvc请求乱码:post在web.xml添加CharacterEncodingFilter过滤器,设置成utf-8。get修改tomcat配置文件设置编码
springmvc常用注解:@RequestMapping:用于处理请求 url 映射的注 @RequestBody:注解实现接收http请求的json数据,将json转换为java对象 @ResponseBody:注解实现将conreoller方法返回对象转化为json对象响应给客户
拦截get请求方法:@RequestMapping注解里面加上method=RequestMethod.GET。
springmvc函数返回值:String, ModelAndView
springmvc从后台向前台传递数据:通过ModelMap对象,可以在这个对象里面调用put方法,把对象加到里面,前台就可以通过el表达式拿到
把ModelMap里面的数据放入Session里面:在类上面加上@SessionAttributes注解,里面包含的字符串就是要放入session里面的key
Sprng Boot/Cloud
微服务概念:将一个大型的应用程序根据业务领域组件拆分为多个应用服务,每个服务运行在独立的线程中,服务之间相互协调配合完成整体业务
微服务和普通系统区别:普通系统,开发简单集中式管理但是效率低同项目开发相互等待、维护难代码耦合新手接手难、不灵活构建时间长、稳定新差小问题可能导致系统崩溃。微服务,有效拆分应用,实现快速开发和迭代提高性能可维护性,系统松耦合高容错,
SpringBoot: 专注于快速方便的开发单个个体微服务。
Spring Cloud:是一个关注全局的微服务协调、整理、治理的框架。主要特性1.版本化分布式配置 2.服务注册与发现 3.服务之间的调用 4.路由 5.断路和负载均衡 6.分布式消息传递
spring boot常用的starter:
①嵌入tomcat和web开始需要的jsp和servlet支持:spring-boot-starter-web
②数据库支持:spring-boot-starter-data-jpa
③redis数据库支持:spring-boot-starter-data-redis
④solr搜索应用框架支持:spring-boot-starter-data-solr
⑤第三方mybatis集成:mybatis-spring-boot-starter
spring boot自动配置原理:
①@EnableAutoConfiguration注释根据添加的jar包添加相应的spring设置。自动去maven中读取每个starter中的spring.factories文件,文件中配置了所有需要被创建的spring bean
②核心注解@SpringbootAplication可以解决根类配置类注解过多的问题,内包含@Configuration@EnableAutoConfiguration@CompenentScan
spring boot读取配置文件方式:默认为aplication.properties或者aplication.yml
springboot热部署:添加开发工具集spring-boot-devtools
覆盖boot默认属性:通过在aplication.properties指定属性来完成。 后缀:spring.mvc.view.suffix:.jsp 前缀:spring.mvc.view.prefix:/web-inf/
springCloud如何实现服务注册与发现:服务发布时指定服务名(ip地址和端口)将服务注册到注册中心。springcloud使用在main方法中使用@EnableDisscoveryClient自动实现
actuator作用:用来访问生产环境中应用程序的运行状态
boot支持的嵌入容器:apache tomcat、eclipse jetty
端到端测试:验证工作流中的所有流程,确保系统以统一的方式工作满足业务需求
Semantic监控:结合整个应用程序的监控和自动化测试,当检测到问题可以快速的隔离减少系统修复时间
eureka服务注册发现:eureka基于rest服务的定位服务,使用服务的标识符就可以访问到服务。eureka有2个组件eureka server服务注册中心和eureka client,2者之间维持30秒心跳连接eureka server检测服务是否正常运行
服务熔断:熔断机制是对微服务产生雪崩效应的一种保护机制。如链路服务不可用或者响应时间长,对服务进行降级熔断节点调用快速返回错误信息。spring cloud中通过Hystrix实现,hystrix监控服务调用情况当失败调用到一定阔值,一般5秒20次调用失败启动熔断机制。开启熔断@HystrixCommand
springCloud Config为微服务架构中的微服务提供集中的外部配置支持,给环境下所有微服务提供一个中心化的外部配置
微服务技术栈:服务开发:spring boot、 spring、 springMVC 服务注册与发现:spring Cloud封装的eureka模块 服务调用:rest ful。 服务熔断:hystrix 负载均衡:nginx 消息队列:activeMq 服务配置中心管理:springCloudConfig