JAVA面试经验问题
0、对SSH理解:
SSH即:Struts(表达层)+Spring(业务层)+Hibernate(持久层)
Struts:
Struts是一种表达层框架,重要作用是界面展示,接受祈求,分发祈求。
在MVC框架中,Struts属于VC层次,负责界面体现,负责MVC关系分发。
(View:沿用JSP,HTTP,Form,Tag,Resourse;Controller:ActionServlet,struts-,Action) Hibernate:
Hibernate是一种持久层框架,它只负责与关系数据库操作。
Spring:
Spring是一种业务层框架,是一种整合框架,可以较好地黏合表达层与持久层。
对Spring有关理解
Spring框架目是为了让模块与模块(对象与对象)之间关联不是通过代码来关联而是通过配备来关联。
Spring核心是IOC与AOP。
IOC(Inversion of Control)控制反转是关于一种对象如何获取她所依赖对象引用,这个责任反转。控制反转可以理解为生产和管理Bean容器,本来需要在调用类中New东西,当前均有IOC容器产生。
IOC三种注入方式:inject
依照属性注入也就是Set办法注入
依照构造办法注入
依照注解注入
IOC最大好处是什么?由于把对象生成放在了XML里定义,因此当咱们需要换一种实现子类将会变成很简朴(普通这样对象都是实现于某种接口),只要修改XML就可以了,这样咱们甚至可以实现对象热插拔(有点像USB接口和SCSI硬盘了)。
DI依赖注入:Dependency injection
依赖注入是一种IOC特殊实现,依赖注入是指一种对象应用此外一种对象来提供一种特殊能力,例如:把一种数据库连接以参数形式传到一种对象构造办法里面而不是在那个对象内部自行创立一种连接。控制反转和依赖注入基本思想就是把类依赖从类内部转化到外部以减少依赖。
AOP(Aspect Oriented Programming):针对一种切面来编程。 AOP面向切面编程 将程序中交叉业务逻辑(例如安全,日记,事务等),封装成一种切面,然后注入到目的对象(详细业务逻辑)中去。 面向切面编程通过预编译方式和运营期动态代理实现程序功能统一维护一种技术.
AOP可以理解为实现调用某个办法之前或者之后,自动执行一系列自定义语句(例如:每做一次数据库操作都要生成一句日记)。
实现AOP功能采用是代理技术,客户端程序不再调用目的,而调用代理类,代理类与目的类对外具备相似办法声明,有两种方式可以实现相似办法声明,一是实现相似接口,二是作为目的子类在, JDK 中采用 Prox类产生动态代理方式为某个接口生成实现类,如果要为某个类生成子类,则可以用CGLB。
AOP重要作用是:日记记录,性能记录,安全控制,事务解决,异常解决等等
AOP与OOP区别:
OOP(面向对象编程)针对业务解决过程实体及其属性和行为进行抽象封装,以获得更加清晰高效逻辑单元划分。
举个简朴例子,对于“雇员”这样一种业务实体进行封装,自然是OOP/OOD任务,咱们可觉得其建立一种“Employee”类,并将“雇员”有关属性和行为封装其中。而用AOP设计思想对“雇员”进行封装将无从谈起。
同样,对于“权限检查”这一动作片断进行划分,则是AOP目的领域。而通过OOD/OOP对一种动作进行封装,则有点不伦不类。
换而言之,OOD/OOP面向名词领域,AOP面向动词领域。
1、***@Controller
用于标注控制层组件(如struts中action),负责注册一种bean 到spring 上下文中,bean ID 默以为类名称开头字母小写。
例如:
***@Controller
public class UserAction extends BaseAction{}
• 或者
***@Controller("userAction")
使用***@Controller注解标记UserAction之后,就表达要把UserAction交给Spring容器管理,在Spring容器中会存在一种名字为"userAction"action,这个名字是依照UserAction类名来取。
2、***@Service
***@Service相应是业务层Bean,例如:
***@Service("userService")
public class UserServiceImpl implements UserService { ……… }
3、***@Repository
用于标注数据访问
2022年全面JAVA面试经历总结 来自淘豆网m.daumloan.com转载请标明出处.