框架学习简单知识点

Mybatis:

mybatis中的别名:

resulttype=”xx.xx.?” 别名typeAliases:<package name=”xx.xx”>

方法名字、参数、返回类型

mybatis中id对应方法名,result(返回类型) 参数parameter

resultMap(映射结果,赋值填充)

mybatis使用update如果在输入时有一个值没有

第一种:<update>

update smbms_user

<if>

xx=xx

</if>

</update>

第二种:使用trim

 

 

Spring:

Spring :企业级系统

数据库访问

动态注入

IOC:控制反转(依赖注入)

控制反转:将组件对象的控制权从代码本身转移到外部容器(举例:不需要自己写代码new对象而是交由Spring去new对象,控制权的转移过程就是控制反转),目的:解耦和,分离关注点

要点:明确定义组件间的接口

依赖注入:将组件的构建和使用分开,拆分,当需要使用时在进行使用

使用简单工厂(需要使用时去容器(工厂)取出)

spring如何处理面向接口的方式:

依赖注入的三种方式:

设值注入、构造注入、p命名空间注入

AOP:面向切面编程(AOP的目标:专心做事,例如一个登录功能只需要专注于编写登录功能对于维护则交由AOP处理)

AOP原理:将复杂的需求分解出不同方面,将散布在系统中的公共功能集中解决,将公共代码提取出来(面向切面,不修改源代码情况下给程序动态添加功能),当代码运行到指定位置时抽取出的代码可以进行指定切入。采用代理机制组装(代理对象方法前后都可以插入代码,这些代码就是增强处理)

AOP相关术语(关键词)

增强处理:

前置增强:在指定方法之前切入

后置增强:..xxxxxxxxx之后切入

环绕增强:前后都能实现

异常抛出增强:如果抛出异常也可以动态切入

最终增强:最终执行结束时

切入点:

切入的位置

连接点:

切入后会产生的连接点(通过连接点可以拿到参数等等)

切面:

目标对象:

切的对象

AOP代理:

指代增强

织入:

织入即切入

环绕增强(分为前、中、后):程序进来时会进入环绕增强的前面,如何没有往下走(中,后)就进不入方法内部会直接结束

IOC注解(不要在接口上写注解,实例化不能实例化接口):

  1. @Component:实现bean组件的定义
  2. @Repository:用于标注Dao类
  3. @Service用于标注业务类
  4. @Controller用于标注控制器类

Autowired从spring容器中根据类型把实现类注入,当实现类有多个时,使用Qualified使用获取特定的实现类

可以利用注解定义切面

IOC原理:Java中的反射机制

举例:利用反射赋值

public void test2(){

String name=”cn.ncu.pojo.user”;

Class forname= Class.forName(“cn.ncu.pojo.user”);//获取包.类下面的对象

Object obj=forname.newInstance();//创建该对象

//方法

/**

*调用对象中的set方法赋值,方法中的参数是String类型

*/

Method method =forname.getMethod(“setUserName”,String.class);

method.invoke(obj,”张三”);//让obj对象执行这个方法,传入的参数是张三

System.out.println(obj);
}

Spring中7种Propagation类的事务属性

REQUIRED(默认情况下):支持当前事务,如果当前没有事务,就新建一个事务,这是最常见的选择

SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行

MANDATROY:支持当前事务,如果当前没有事务,就抛出异常

REQUIERS_NEW:新建事务,如果当前存在事务,把当前事务挂起

NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起

NEVER:以非事务方式执行,如果当前存在事务,则抛出异常

NESTED:支持当前事务,如果当前事务存在,则执行一个嵌套事务,如果当前没有事务,就新建一个事务

事务的隔离级别

 

 

Spring Mvc

替代了servlet)

servlet写起来过于繁琐,使用Spring mvc 替代servlet

mvc层的框架所实现的是控制层以及模型(JavaBean)

 

使用RequestMapping就会映射相应的请求

在web.xml中配置servlet,springmvc在默认情况下在web-inf下找springmvc.xml配置文件因此要在web.xml中配置init-param自定义路径

 

spring mvc请求处理流程:

直观来看:客户端请求时映射地址与web.xml中的DispatcherServlet匹配上,请求的url地址会匹配requsetmapping进入方法具体执行,执行完了之后返回的是视图的名字与springmvc中的视图解析器拼上前缀和后缀并成路径再找到路径的这个文件,把这个文件再响应给浏览器(客户端)

 

springmvc的中心:前端控制器DispatcherServlet

用户发送请求后前端控制器(由handelemapping寻找映射找到后再由handleadapter适配器找到具体的controller处理执行)将请求委托给controller(相应的处理器),处理器调用model(service),再调用dao层返回数据,再返回视图名称经过视图解析器找到相应视图路径,再由前端控制器产生响应

 

mvc设计模式:

model(javabean、service、dao等)

view(视图,jsp,html)

controller(控制器)

 

rest风格:表述性状态转移,一种软件架构风格

spring mvc也提供了对这种风格的支持

@RequestMapping("test4/{id}/{name}")
   public  String test4(@PathVariable("id") Integer myid,@PathVariable String name)

使用注解@PathVariable当名字一样时不用写后面的(““)

 

为什么使用fastjson:

spring mvc在默认情况下是将返回值默认成视图返回的,用户发起请求时不想返回视图只对数据进行响应时就要在spring mvc中配置一个消息转换器(fastjson)以json形式直接进行响应

@responbody

消息解析器直接解析json

时间处理:@JSONField(format=yyyy-MM-dd)//按照指定格式进行json解析

 

mvc框架拦截器:

@RequestMapping(xx)在类的上方进行声明通过xx/xx进行一个过滤

 

规范数据接口,举例:

List<user> List =userService.getuserlist();

Map<String,Object> map = new HashMap<String, Object>();

map.put(data,list);

map.put(message,获取用户列表成功);

map.put(code,100);//自定义编码100表示成功

return map;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值