总结项目笔记Spring

1、spring,springmvc,springboot的区别:

  1. spring是一个一站式的,轻量级的,非侵入式的Java开发框架,核心是IOC(控制反转)和AOP(面向切面),针对web层(springmvc),业务层(IOC),持久层(JdbcTemplate)都提供了多种配置方案,springmvc,springboot都算是spring的衍生品
  2. springmvc不是一个独立的框架,而是建立在spring的基础上框架,主要处理web层的路径映射和视图渲染,springmvc要配置xml文件,前端映射器,过滤器,简称配置地狱
  3. springboot是一个脚手架,只专注于后台接口,不需要开发视图渲染,配置文件,简化了配置流程
    springboot还内嵌了tomcat服务器,直接运行main方法启动项目

2、spring的优势

  1. spring可以简化Java企业级应用开发,降低耦合性
  2. 支持声明式事务
  3. 通过配置就可以完成对事务的操作,无需手动编程
  4. 可以集成其他的框架,比如springmvc,mybatis等
  5. spring中的两个核心是IOC和AOP(spring的缺点是入门需要的时间长

3、spring的开发步骤:

  1. 创建maven项目
  2. 导入pom依赖
  3. 创建核心配置文件applicationContext.xml
  4. 写各个层
  5. 通过bean注册到容器中,或者注解
  6. 使用工厂classpathxmlApplicationContext创建bean对象

4、springmvc的工作流程?

  1. 用户发送请求给DispatcherServlet
  2. DispatcherServlet调用处理器映射器,映射器根据请求找到处理器,生成处理器对象并返回给DispatcherServlet
  3. DispatcherServlet调用处理器适配器,适配器去请求执行处理器,处理器执行完毕后返回modelAnadView给DispatcherServlet
  4. DispatcherServlet将ModelAndView传给视图解析器进行解析,解析器返回视图对象给DispatcherServlet
  5. DispatcherServlet根据视图对象进行渲染页面

5、@tableField不是数据库列名,和实体Vo是一个意思

6、@AutoWired和@Resource

  1. 注解@AutoWired根据类型依赖注入时,要求依赖的对象必须存在,当允许为null时,可以设置@AutoWired(required=false)
  2. 当一个userDao有多个实现类时,使用@AutoWired进行依赖注入时会报错,spring无法判断注入哪个,所以就需要和@Quaily搭配使用
    3.注解@Resource根据名字依赖注入,可以作用在字段和set方法上

7、@mapper和@reposity

  1. 都是作用在dao层,mapper属于mybtais的注解,reposity是spring的注解
  2. mapper不需要配置扫描地址,通过mapper.xml文件中的命名空间找到对应的mapper类
  3. reposity需要配置扫描地址,就可以找到mapper类,注入到service中

8、 spring中的事务隔离级别和数据库中的一样,当数据库和spring中的隔离界别不同时,以spring为主

9、@postContructer注解

  1. 使用该注解修饰的方法会在init初始化之前执行,并且只被执行一次
  2. 执行步骤:构造方法,依赖注入AutoWired,postConstructer

10、使用过spring中的事务么?实现方式的原理是什么?

10.1、 xml方式,实现原理通过AOP做切面增强
  1. 使用过声明式事务
  2. 先注册一个事务管理器dataSourceTransactionManager
  3. 在xml文件中,实现基于aspectJ的声明式事务
  4. 定义事务,相当于一个增强,里面对属性做配置:method对哪些方法做增强,isolate事务的隔离级别,rollback-for发生哪些异常时回滚,propagation事务的传播特性等等
    4.aop做织入,定义切入点,对目标对象的哪些方法实现增强,一般都是service层的方法,因为mapper层交给mybatis管理,controller交给springmvc主要做路径映射和视图解析,所以主要的业务逻辑就在service层上
 <!-- 配置声明式事务 -->
<!--    事务管理器-->
    <bean id="dataSourceTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>

<!--    基于aspctJ的声明式事务xml配置方式-->
<!--    事务的定义,相当于一个增强-->
    <tx:advice id="txAdvice" transaction-manager="dataSourceTransactionManager">
<!--        增强事务的属性配置-->
<!--        isolate是事务的隔离级别
            propagation事务的传播特性
            rollback-for发生哪些异常事务回滚
-->
        <tx:attributes
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值