1、什么是IoC

Ioc—Inversion of Control,即“控制反转”,是一种思想,

一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更优良的程序。

高内聚低耦合的设计能够让构造和演化都更加高效,比如:

  • 开发更方便组织分工
  • 代码更容易进行复用
  • 更容易进行测试
  • 软件演化有更好的灵活性,能快速响应需求变化,维护代价更小

2、什么AOP

AOP面向切面,切面将那些与业务无关,却被业务模块共同调用的逻辑提取并封装起来,减少了系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。

实现策略JAVA SE动态代理、CGLib

spring aop通知(advice)分成五类: 
前置通知[Before advice]

在连接点前面执行,前置通知不会影响连接点的执行,除非此处抛出异常。 
正常返回通知[After returning advice]

在连接点正常执行完成后执行,如果连接点抛出异常,则不会执行。 
异常返回通知[After throwing advice]

在连接点抛出异常后执行。 
返回通知[After (finally) advice]

在连接点执行完成后执行,不管是正常执行完成,还是抛出异常,都会执行返回通知中的内容。 
环绕通知[Around advice]

环绕通知围绕在连接点前后,比如一个方法调用的前后。这是最强大的通知类型,能在方法调用前后自定义一些操作。环绕通知还需要负责决定是继续处理join point(调用ProceedingJoinPoint的proceed方法)还是中断执行。

3、什么是MVC

MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,

是一种软件设计典范。它是用一种业务逻辑、数据与界面显示分离的方法来组织代码,

将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,

不需要重新编写业务逻辑,达到减少编码的时间。

4、常用的设计模式

1工厂方法 关注对象创建。

2策略模式 关注对象行为。业务变化时,对数据模块的增加修改不受影响,开放封闭原则。 
3外观模式 BS/CS 
4适配品模式 报表自主开发或购买第三方 
5观察者模式 主界面菜单(菜单的Enable、Vieable状态)采用事件驱动方式

Spring(ICO控制反转/DI依赖注入)

5、什么是MyBatis

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。

MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。

MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

6、什么是Hibernate

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

7、什么是JPA

JPA是Java Persistence API的简称,中文名Java持久层API,

是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

SQL

DROP TABLE IF EXISTS `jd_product`;-- 产品信息表
CREATE TABLE `jd_product` (
`prod_no` int(11) NOT NULL AUTO_INCREMENT,-- 产品ID
`prod_name` varchar(150) NOT NULL, -- 产品名称
`prod_TypeId` int(11) DEFAULT NULL, -- 类型ID
`prod_brandId` int(11) not null, -- 品牌ID
`low_price` decimal(9,2) DEFAULT NULL, -- 产品最低售价
`state` int(11) DEFAULT '', -- 状态(上架0,下架1)
`picture` varchar(20) DEFAULT NULL, -- 产品封面图
`gmt_create` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`gmt_update` timestamp NOT NULL default '0000-00-00 00:00:00',
`else` int(11), -- 作用于其它
`sales` int(11), -- 销量
PRIMARY KEY (`prod_no`), -- 主键
foreign key (`prod_TypeId`) references jd_protype(`prot_id`), -- 类型外键
foreign key (`prod_brandId`) REFERENCES jd_brand(`brand_id`) -- 外键
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

Java相关框架概念以及思想的更多相关文章

  1. 分享一些阅读Java相关框架源码的经验

    昨天和部分网友进行了线上的交流,交流中有不少网友提到阅读源码比较难,不知道怎么上手.胖哥分享了一些个人经验,这里总结一下. 阅读源码实际上是Debug源码 其实所谓的阅读源码并不是单纯的阅读,而是调试 ...

  2. Java相关框架资料及其基础资料、进阶资料、测试资料之分享

    个人说明:只为分享,不为其他,愿所有的程序员们在编程的世界自由翱翔吧! 在我看来,只有不断实战,不断学习,不断积累,不断归纳总结,形成自己的核心竞争力,方能在未来竞争中脱颖而出! 程序员谨记!重要的事 ...

  3. Java相关框架

    框架 类型 设计(个人理解) HK2 自动注入框架 Jersey RESTful Jetty HTTP服务 Retrofit HTTP客户端 ActiveMQ 消息组件 主题.队列 Redis K-V ...

  4. 面向对象的编程思想和Java中类的概念与设计

    面向对象的编程思想学习,面向对象内容的三条主线;1.java类及类的对象2.面向对象的三大特征3.其他关键字学习内容:3.1面向对象与面向过程面向对象与面向过程在应用上的区别 Java中类的概念与设计 ...

  5. 深入理解Java并发框架AQS系列(二):AQS框架简介及锁概念

    深入理解Java并发框架AQS系列(一):线程 深入理解Java并发框架AQS系列(二):AQS框架简介及锁概念 一.AQS框架简介 AQS诞生于Jdk1.5,在当时低效且功能单一的synchroni ...

  6. 深入探索 高效的Java异常处理框架

    转载自:http://www.sunwei.org/archives/196 摘要:本文从Java异常最基本的概念.语法开始讲述了Java异常处理的基本知识,分析了Java异常体系结构,对比Sprin ...

  7. Java自动化测试框架-02 - TestNG之理论实践 - 纸上得来终觉浅,绝知此事要躬行(详细教程)

    理论 TestNG,即Testing, NextGeneration,下一代测试技术,是一套根据JUnit 和NUnit思想而构建的利用注释来强化测试功能的一个测试框架,即可以用来做单元测试,也可以用 ...

  8. JAVA web 框架集合

    “框架”犹如滔滔江水连绵不绝, 知道有它就好,先掌握自己工作和主流的框架: 在研究好用和新框架. 主流框架教程分享在Java帮帮-免费资源网 其他教程需要时间制作,会陆续分享!!! 152款框架,你还 ...

  9. java相关书籍及网站

    原文链接:http://developer.51cto.com/art/201408/448609.htm 对于 Java™ 语言开发人员来说,信息过量是一个真正的问题.每个新入行的程序员都要面临一个 ...

随机推荐

  1. Django_05_模板

    模板 如何向请求者返回一个漂亮的页面呢?肯定需要用到html.css,如果想要更炫的效果还要加入js,问题来了,这么一堆字段串全都写到视图中,作为HttpResponse()的参数吗?这样定义就太麻烦 ...

  2. Build with runtime packages

    编译问题:为什么我去掉Build with runtime packages,编译没问题??? 如果不去掉,就有错误:[Linker Error] Unresolved external 'TXNet ...

  3. 剖析ajax

    学过javascript和接触过后端PHP语言必然要用到ajax,这是必学的一门学科,AJAX指的是Asynchronous JavaScript and XML,它使用XMLHttpRequest对 ...

  4. ubuntu16.04中不能连接无线网络

    安装完ubuntu desktop版之后,无线网络连接中没有出现当前可以连接的wifi列表. 直接插上网线之后,是可以上网的.但是还是不是很方便, 可以点击右上角的齿轮-->system set ...

  5. Spring入门篇——第1章 概述

    第1章 概述 本章对课程的情况进行介绍,并介绍框架和Spring概况. 1-1 Spring入门课程简介 1-2 Spring概况 1-3 Spring框架

  6. CF732F Tourist Reform[边双缩点]

    题意:给无向图每一条边定向,使得每个点可达点数$R_i$最小值尽可能大,求方案. 条件反射想到二分答案,然后看怎么检验,发现要让所有点$R_i$大于等于某一个值,首先我们关注某些特殊的子图:如果有环的 ...

  7. Filtering Approaches for Real-Time Anti-Aliasing(2011 SIGGRAPH)

    Filtering Approaches for Real-Time Anti-Aliasing(2011 SIGGRAPH) 在2011的SIGGRAPH上,NVIDA提出了FXAA3.1,本文主要 ...

  8. Verilog写入变量值到文件语句

    integer signed fid_out1,fid_out2; initial begin fid_out1 = $fopen("dataout_i.txt","w& ...

  9. Unknown property 'mybatis-plus'

    包名和配置文件路径必须一样 并且

  10. [Luogu] 等差数列

    https://www.luogu.org/problemnew/show/P4243#sub 自己的思路错了 #include <iostream> #include <cstdi ...