Spring 特点IOC AOP

0目录

1.Spring

1.定义

轻量级框架,主流框架

2.Spring特性

1.IOC 控制反转

2.AOP面向切面

3.Spring组成部分

核心要点:Spring在SSM中所起到的作用:

          SpringMVC和Mybatis框架的粘合剂

4.Spring理念

OOP核心思想:面向对象【万物皆对象】

Spring核心思想:面向Bean【万物皆Bean组件】

5.Spring优势

1.IOC控制反转【降低了耦合度】

2.AOP面向切面【专门的人干专门的事】

3.多个框架的粘合剂【可以完美兼容SpringMVC,Mybatis】

低侵入式设计

独立于各种应用服务器

依赖注入特性将组件关系透明化,降低了耦合度

面向切面编程特性允许将通用任务进行集中式处理

与第三方框架的良好整合

6.面试题:什么是IOC

7.非IOC思想【new组件】

8.IOC思想

pom依赖

applicationContext.xml

Test

applicationContext.xml

创建工程

applicationContext.xml

配置mybatis-config.xml文件

实体类

UserMapper.xml

UserServiceImpl

AOP

POM依赖

mapper接口

实现类

ComputerMapper

StoreMapper

applicationContext.xml

mybatis-config.xml

测试

computerId在数据库中存在,nums小于数据库里的cmount

computerId在数据库中不存在

nums大于数据库里的cmount

头文件

声明、事务驱动

第3步

 /**
     *  rollbackFor:表示发生制定的异常一定回滚
     */
    @Transactional(
            propagation = Propagation.REQUIRED, //配置的含义代表默认开启事务
            isolation = Isolation.DEFAULT,  //配置的含义代表使用默认的隔离级别(多事务之间相互隔离)
            readOnly = false,               //readOnly配置为true的含义为只读
            rollbackFor = {
                    NullPointerException.class,
                    NotEnoughException.class
            }
    )

事务只加在service层

AOP去除事务注解版

在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut"切入点"

例如定义切入点表达式 execution(* com.sample.service.impl..*.*(..))

execution()是最常用的切点函数,其语法如下所示:

 整个表达式可以分为五个部分:

 1、execution(): 表达式主体。

 2、第一个*号:表示返回类型,*号表示所有的类型。

 3、包名:表示需要拦截的包名,后面的两个句点表示当前包和当前包的所有子包,com.sample.service.impl包、子孙包下所有类的方法。

 4、第二个*号:表示类名,*号表示所有的类。

 5、*(..):最后这个星号表示方法名,*号表示所有的方法,后面括弧里面表示方法的参数,两个句点表示任何参数。

SpringMVC

依赖

web.xml

applicationContext.xml

IndexController

SpringMVC处理流程

1.客户端浏览器访问:http://localhost:8080/xx.do

2.web.xml   DispatcherServlet

2.2匹配请求路径

匹配步骤:

(1)通过上下扫描器 扫描...路径下的controller包

<context:component-scan base-package="cn.kgc.controller"/>

(2)通过mvc驱动的获取...路径下的@Controller标识的控制层
<mvc:annotation-driven/>

(3)通过RequestMapping获取xx.do对应的方法路径调用该方法【映射】

@RequestMapping("/index.do")

视图解析器

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/"></property>
    <property name="suffix" value=".jsp"></property>
</bean>

prefix中的va1ue配置/代表的含义是匹配工程 中的webapp目录[前缀路径]

suffix中的value配置.jsp代表的含义是匹配所有的.jsp为后缀的文件文件

1.

前端控制器

1.在web.xml配置servlet和servlet-mapping一对映射

2.1在servlet中需要配置 DispatcherServlet类

2.2配置初始化参数 引入spring配置文件

3.在servlet-mapping的url-pattern中加入*.do获取客户端发送的请求和controller端匹配的方法的路径(*.do)【模糊匹配】

2.

扫描器,mvc驱动 -->

通过context:component-scan扫描某个路径

(例如base-package="cn.kgc.controller"中的路径)下控制层的

类[@Controller标识的类就称为控制层的类]

或是方法[@RequestMapping标识的方法就称为springmvc中控制层的方法]

3.

控制类注解@Controller

用于标识HelloWorldController类为Spring MVC的控制器

4.

url请求地址注解@RequestMapping

url请求参数注解@RequestParam

场景一:方法在加入String username

场景二:方法中加入@RequestParam传递参数username

场景三:方法中加入require = false 可传可不传

场景四:方法中加入require = true 必须传值

场景五:默认传值

视图返回字符串对象String

添加模型数据:ModelAndView.addObject(String attributeName,Object attributeValue);

设置视图名称:void setViewName(String viewName);

视图解析器

login.jsp

index.jsp

findAll.do

依赖

list.jsp

add.do

add.jsp

当用户发送请求到springmvc中的前端控制器中,通过映射器和适配器返回ModelAndView对象到客户端。这就是SpringMVC的基本原理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值