Spring重点小结

Spring整合MyBatis原理之Mapper接口和xml文件的解析 目录前言类 `SqlSessionFactoryBean`实现了 `FactoryBean` 接口的 `getObject()``buildSqlSessionFactory()`解析 `mapper` 文件的 `parse()`解析 `mapper` 文件的 `configurationElement(parser.evalNode("/mapper"))`解析节点 `statementParser.parseStatementNode()`绑定 `namespace` 的 `mapper` 的 `bin 阅读详情

使用Spring的好处

Spring是轻量级的JAVAEE应用开源框架

  • IOC:控制反转
  • AOP:面向切面
  • 粘合剂:整合其他技术和框架

什么是IOC

1、耦合
        耦合:对象之间的依赖关系(service依赖于dao),耦合度越高维护的成本越高
        产生耦合的原因:硬编码
    2、IOC
        控制:控制对象的创建
        IOC (Inverse of Control)即控制反转:正传是自己创建对象;反转是由工厂创建依赖对象

什么是DI

DI(Dependency Injection)依赖注入:将依赖对象从容器中拿出来赋值给调用者

Spring的注入方式有哪些 

1、构造方法注入

public UserServiceImpl(UserDao userDao, String msg){
                this.userDao=userDao
                this.msg=msg
            }

            <bean id="userService" class="com.by.dao.UserServiceImpl" >
                <!--
                    name="userDao":构造方法的参数名称
                    ref="userDao":另一个bean标签的id
                -->
                <constructor-arg name="userDao" ref="userDao"></constructor-arg>
                <!--
                    index="userDao":构造方法的参数的索引位置
                    value="我靠":基本数据类型和String类型
                -->
                <constructor-arg index="0" value="我靠"></constructor-arg>
            </bean>


2、set方法注入

public setUserDao(UserDao userDao){
                this.userDao=userDao
            }

            public setMsg(String msg){
                this.msg=msg
            }

            <bean id="userService" class="com.by.dao.UserServiceImpl" >
                <property name="userDao" ref="userDao"></property>
                <property name="msg" value="我操"></property>
            </bean>


 3、自动注入
           

//遍历map,并判断每个bean的类型,如果类型符合则赋值
<bean id="userService" class="com.by.dao.UserServiceImpl" autowire="byType"></bean>

BeanFactory和ApplicationContext区别

  • ApplicationContext:子接口,加载配置文件时就创建对象
  • BeanFactory:顶级接口,使用对象时才创建

spring bean五种作用域(bean放哪了)

属性作用域
singleton(单例):ioc容器
prototype(多例):newInstance()
requestrequest域
sessionsession域
applicationservletContext域

spring bean的生命周期

案例、

public class UserServiceImpl{

            private UserDao userDao;

            public UserServiceImpl(){
            }
            public setUserDao(){
            }
            public void init(){
            }
            public void destroy(){
            }
        }
<bean id="" class="" scope="singleton"
                  init-method="init" destroy-method="destroy" autowire="byType">

单例:
            [容器启动]---->构造方法(实例化)---->set方法(注入)---->init方法(初始化)---->[容器关闭]---->destroy方法(销毁bean)
多例:
            [使用对象]---->构造方法(实例化)---->set方法(注入)---->init方法(初始化)---->[JVM垃圾回收]---->destroy方法(销毁bean)

什么是AOP

1、为什么要使用AOP?

有一万个service类,要求每个方法执行前打印日志,执行后打印日志

2、什么是AOP?

AOP(Aspect Oriented Programming)面向切面编程:把程序中重复的代码抽取出来,使用动态代理的技术去执行,
        从而实现对方法的增强(不修改源代码对方法进行增强)

代理模式的区别与联系

1)静态代理
            角色:
                公共接口:Star
                真实角色:RealStar(周杰伦.唱歌)
                代理角色:ProxyStar(宋吉吉.面谈.订机票.签合同.[调周杰伦唱歌].收尾款)
                客户类:Client(小孩.调宋吉吉)

            缺陷:1.大量代码重复 2.只能代理Star类型的对象
        2)jdk动态代理
            角色:
                公共接口:Star
                真实角色:RealStar(周杰伦.唱歌)
                代理工厂:ProxyFactroy{生成ProxyStar(宋吉吉.面谈.订机票.签合同.[调周杰伦唱歌].收尾款)}
                客户类:Client(小孩.调宋吉吉)
        3)Cglib动态代理
            cglib和jdk动态代理的区别:cglib真实角色没有接口

aop的核心概念

1.切点(pintcut)

切点(pintcut):要增强的方法,eg:add()、update()

切点表达式:

格式:execution([修饰符] 返回值 报名.类名.方法名(参数))
eg:execution(* com.by.service.*.*(..))

2.通知/增强(advice)

通知/增强(advice):要搞的事情,eg:日志
            前置通知:aop:before
            后置通知:aop:after-returning【try】
            最终通知:aop:after【finally】
            异常通知:aop:after-throwing【catch】
            环绕通知:aop:around

try{
                ...
                return aop:after-returning
            }catch(Exception e){
                ...
                aop:after-throwing
            }finally{
                ...
                aop:after
            }

3.切面(aspect)

切面(aspect):把增强应用到切点上

常用注解

1)IOC注解

<!-- 告知spring框架,在读取配置文件,创建容器时扫描包,依据注解创建对象,并存入容器中 -->
    <context:component-scan base-package="com.by"></context:component-scan>


            @Controller:web
            @Service:service
            @Repository:dao
            @Component:三层架构之外
            @Scope("prototype"):指定bean的作用域范围,eg:singleton、prototype、request、session、application

 

 2)DI注解


            @Resource(name=""):按名称注入
            @Autowired:按类型
            @Value("${}"):注入基本类型和String类


3)AOP注解

开启spring对aop注解的支持
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>

        @Aspect:把当前类声明为切面类

        @Before:前置通知,可以指定切入点表达式

        @AfterReturning:后置【try】通知,可以指定切入点表达式

        @AfterThrowing:异常【catch】通知,可以指定切入点表达式

        @After:最终【finally】通知,可以指定切入点表达式

        @Around:环绕通知,可以指定切入点表达式

spring知识点梳理 spring从搭建配置到简单开发的一个整体流程,比较适合打基础的朋友! 立即下载

相关推荐

技术美术个人笔记(十六)——Houdini到UE的大地形

文章目录关于地形白模制作关于PDG流程 关于地形白模制作 用heightfield noise和笔刷刷出合适的mask做山形叠加: 用remap可快捷反转mask ,用来做平原地区的小型丘陵: 接着用clip切平最低处,用distort制造侵蚀等,对部分地区用笔刷进行微调拓宽峡谷: 用经过sweep打平的曲线以及裁切的各种多面体用heightfield_project投影制作河道和水池,用blur mask并remap的方法拓宽河道 用distort、erode制造合适的弯曲和侵蚀,同理可挖出月牙形

小谁的博客 3178

Spring的重点知识

spring是java应用程序开发的框架,使用此框架可以创建性能更好、易于测试、可重用的代码* Spring是一个开源的java平台* spring是轻量级的框架* spring框架的核心特性是可以用于开发任何java应用程序,但是在java EE平台上构建web应用程序是需要扩展的数据库事务就是一种SQL语句执行的缓存机制,不会单条执行完毕就更新数据库数据,最终根据缓存内的多条语句执行结果统一判定。* 一个数据库内所有语句成功,可以触发commit提交事务来结束事务,更新数据。

ggggggzzzzz的博客 1353

MiniOSD DIY记

最近迷上了航模,研究了很多东西,感觉路走的长了还是适当要停下脚步休息下总结下。 这次DIY的是一块OSD设备,主要用于航模图传的叠加显示,原理也很简单就是atmel atmega328p+MAX7456芯片,网上卖的成品基本上都是一个原理图。 原理图 我按照我自己的需要做了适当的更改,去掉了DC-DC电路,直接用5V输入,因为摄像头都是5V的,所以DC-DC不是很有必要,体积上更加小了点, 打...

memoff的博客 8518

Spring重点知识(个人整理笔记)

Spring重点知识,个人整理笔记

m0_51935980的博客 1877

Python+pytest+requests 自动化测试框架

环境准备 本次选用的是Python+Pytest+requests来搭建自动化框架,需要有 Python 环境(3.x 版本),安装pytest和requests,不会安装的自行去网上搜教程。 关于 Pytest 的基本使用,这里不作讲解,不清楚的可以看我之前的文章。 简单 Demo 我们先创建一个项目,取名api-test,然后在下面创建一个test_api.py的文件 # test_api.py import pytest import requests def test_01():

weixin_42686892的博客 1万+

Spring重点

文章目录Spring的生命周期第一大类:影响多个Bean的接口第二大类:只调用一次的接口Bean的作用域单例池、单例Bean、单例模式的区别:BenFactory与ApplicationContext的区别Bean线程安全问题 Spring的生命周期 spring会基于你当前的类生成BeanDefintion,然后实例化。 BeanDefinition描述了一个bean的实例,包括属性值,构造方法参数值和继承自它的类的更多信息,在Spring容器启动的过程中,会将Bean解析成Spring内部的BeanDe

weixin_45321681的博客 725

告别两个电源模块!用UCD3138+四开关Buck-Boost,一个电路搞定电池充放电(附原理图分析)

本文详细介绍了采用UCD3138数字控制器和四开关Buck-Boost拓扑的双向DC/DC变换器设计,实现单一电路完成电池智能充放电管理。该方案显著降低BOM成本和PCB面积,提升系统效率至96.2%,适用于UPS、通信基站和储能系统,具有高效、紧凑和成本优势。

weixin_30256901的博客 397

Spring + Spring Boot 核心知识点汇总

声明式事务为主,编程式事务为补充注意传播机制和异常回滚策略避免导致事务失效项目中通常在Service 层方法 + Repository 层数据操作使用事务对独立业务操作可使用,保证事务隔离AOP 是管理横切关注点的核心工具日志、性能监控、权限控制、事务管理是最常见场景注意代理类型与问题切点精确 + 通知简洁 → 性能和可维护性最佳缓存用于性能优化与减轻数据库压力@Cacheable@CachePut分布式缓存(Redis)保证集群环境一致性注意缓存过期策略、key 命名、更新/删除同步。

weixin_44876263的博客 940

Altera FPGA与高速ADS4249和DAC3482的LVDS接口设计

引言:本文以TI的ADS4249(ADC)和DAC3482(DAC)之间的接口为例,介绍Altera FPGA与ADC/DAC之间的DDR LVDS接口设计以及时序约束详细设计。本文介绍的实例可方便扩展到具有类似接口格式的其他高速数据转换器设计。

FPGA_Designer 1899

Central Finance 全景解析:用 SAP S/4HANA 构建跨系统的财务中台与渐进式转型路径

Central Finance 是基于 SAP S/4HANA 的一种部署与应用场景:在不打断现有异构源系统运营的前提下,把多套 SAP 与非 SAP 系统中的财务与管理会计数据实时/准实时复制到一套中心化的 SAP S/4HANA 中,作为统一的记账与分析底座,逐步把选定的财务流程(如预算控制、付款、固定资产结账等)迁入中心系统。这让企业既能快速获得统一报表与统一核算结构,又为未来的整体迁移留出了弹性路径。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 388

Spring知识点总结

Spring AOP 什么是AOP AOP,其实就是面向切面编程,将一些公共逻辑(事务管理、日志、缓存等)封装成切面,跟业务代码进行分离,可以减少系统的重复代码和降低模块之间的耦合度。切面就是那些与业务无关,但所有业务模块都会调用的公共逻辑。 动态代理的实现方式有哪些 动态代理技术的实现方式有两种: 基于接口的 JDK 动态代理。 基于继承的 CGLib 动态代理。在Spring中,如果目标类没有实现接口,那么Spring AOP会选择使用CGLIB来动态代理目标类。 CGlib动态代理 C

正在努力工作的搬砖人 1103

华为OD机试双机位C卷-几何平均值最大子数组(Py/Java/C/C++/Js/Go)

华为OD机试(机考)2026双机位C卷 【几何平均值最大子数组】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【几何平均值最大子数组】。

qq_45776114的博客 1367

转载:Spring 重点个人小结

原文:http://www.blogjava.net/beansoft/archive/2007/08/02/133892.html Spring 这么多内容该看哪些? 我就根据我的理解谈一些个人的观点, 仅供参考. 欢迎讨论. 首先学习 Spring 等框架应该本着简化程序员负担, 加快开发速度的原则来进行, 而不是把框架的知识点都给学习, 练习一遍. 另外用 Spring 的时候也要注意不要过...

iteye_6293的博客 145

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Spring Cloud 微服务重点知识小结

服务注册:Consul,是HashiCorp 公司开发的独立第三方中间件。服务发现:Eureka、Nacos(阿里)服务调用:OpenFiegn负载均衡:Ribbon 已停更,Spring Cloud LoadBalancer 是官方替代服务熔断、限流、降级:Hystrix停止维护,Sentinel(阿里)网关:Spring Cloud GatewayEureka 保证服务能注册、能发现,哪怕数据不准。设计目标:AP 系统(高可用优先)核心原理:客户端拉取 + 心跳续约 + 最终一致性① 服务注册(Regi

woniu_buhui_fei的博客 599

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Java进阶篇1_Spring的简介、配置文件、依赖注入、 注入方法、重点配置小结

写在前面 我的 《Java进阶篇》系列博客今天上线了,还是像往期的《Java学习篇》、《JavaWeb学习篇》一样把学习历程记录下来 Spring简介 是什么 发展历程 优势 体系结构 Spring程序开发步骤 快速入门 Spring配置文件 Bean标签范围配置scope属性 Bean标签Bean的生命周期配置 Bean标签Bean实例化的三种方式 Bean标签Bean的依赖注入分析 依赖注入 注入方法 set方法 构造方法 Bean标签Bean的依赖注入的数据类型 引用数据类型的注入 普通数据类型

xiaosi的博客 450

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Spring之重点知识 IOC(控制反转)和AOP(面向切面编程)学习小结

Spring优点: 1.Spring是一个开源,免费的框架 2.Spring是一个轻量级的,非入侵式的框架(引入后不会改变原来的代码,只需要引入包即可。) 3.控制反转,面向切面编程 4.支持事务处理,支持对框架的整合 【重点一】IOC(控制反转): 在Spring框架之前,我们在开发项目时,需要建立这么几个类,controller类,service接口,serviceImpl实现,dao接口类及dao实现类。当serviceImpl中使用dao操作数据库时,需要先new Dao() ,然后调用具体方法 来

我跌跌撞撞奔向你 380

SSH+Log4j+JUnit+MySql整合Web Project练习小结,重点在Spring上如何进行JUnit测试

前3天都是单独小练习,今天做一个整合小练习,看看会不会出现一些问题。。。   例子很简单,Spring 3 + Struts 2 + Hibernate 3 + Log4j 1.2.14 + Junit 4.8.1 + MySql 5.5   基于上述技术实现一个超简单的Web Project 功能就是CRUD。。。(登录+管理)。。。go go go。。。       ----...

炽热年华的专栏 230

Spring框架01

IoC控制反转:即,把创建对象的权利交给框架,也就是指将对象的创建、对象的初始化、对象的存储、对象的管理交给了Spring容器。IOC本质是一种设计思想。IoC 是一种通过描述来生成或者获取对象的技术,对于Java初学者 更多时候所熟悉的是使用 new 关键字来创建对象,而在spring中则不是,它是通过描述(XML或注解)来创建对象。

a1575949906的博客 2511

JavaWeb:Spring配置文件( @ConfigurationProperties)

JavaWeb、Spring、配置文件、@ConfigurationProperties、

IT瘾君子的博客 283

SPring bean 完成

beanFactoryPostProcess目录概 述小结参考资料和推荐阅读 LD is tigger forever,CG are not brothers forever, throw the pot and shine forever. Modesty is not false, solid is not naive, treacherous but not deceitful, stay with good people, and stay away from poor people. talk

专注Java(全栈)应用开发,求知若渴,虚心若愚,talk is cheap, show me the code. 591

Spring 源码第一篇开整!配置文件是怎么加载的?

1.从何说起 Spring 要从何说起呢?这个问题我考虑了很长时间。 因为 Spring 源码太繁杂了,一定要选择一个合适的切入点,否则一上来就把各位小伙伴整懵了,那剩下的文章估计就不想看了。 想了很久之后,我决定就先从配置文件加载讲起,在逐步展开,配置文件加载也是我们在使用 Spring 时遇到的第一个问题,今天就先来说说这个话题。 2.简单的案例 先来一个简单的案例,大家感受一下,然后我们顺着案例讲起。 首先我们创建一个普通的 Maven 项目,引入 spring-beans 依赖: <depen

qq_43623970的博客 291

应用框架:Spring之IoC容器理解

牛旦教育IT课堂2019-03-18 11:10:00 序言 记得刚毕业那会儿,出来招工作被问到Spring的核心时,都觉得简单的一笔,直接说不就是IoC(控制反转)和DI(依赖注入)么,然后省略一万字对两个名词的解释。最近空来整理了一下Spring中IoC的相关概念,即是复习,也是希望分享出来能帮助到大家更快理解IoC。 其实IoC包括依赖查找(DL)和依赖注入(D...

u011277123的博客 274

springsecurity原理执行流程_Spring Security 可以同时对接多个用户表?

这个问题也是来自小伙伴的提问:其实这个问题有好几位小伙伴问过我,但是这个需求比较冷门,我一直没写文章。其实只要看懂了松哥前面的文章,这个需求是可以做出来的。因为一个核心点就是 ProviderManager,搞懂了这个,其他的就很容易了。今天松哥花一点时间,来和大家分析一下这个问题的核心,同时通过一个小小案例来演示一下如何同时连接多个数据源。1.原理1.1 Authentication玩过 Spr...

weixin_39687422的博客 362

Spring in Acton 4读书笔记之使用Thymeleaf

JSP的缺陷 尽管JSP历史悠久、应用广泛,但它有以下缺陷: 尽管看起来像,但既不是HTML,也不是XML JSP标签库使文档格式不友好 如果JSP标签没有在服务端正确编译后发给浏览器,浏览器由于不理解JSP标签,渲染的结果是一个灾难 JSP标准和servlet耦合,所以JSP只能用于基于servlet的web应用视图。像email或者不基于servlet的web应用就无法使用JSP 由于JSP有以上缺陷,许多模板试图取代JSP,而其中Thymeleaf是一个令人兴奋的选择。Thymeleaf自然,不依

谈谈IT 169
上一篇: MySQL的事务隔离级别(脏读,不可重复读,幻读的解释和解决)
下一篇: SpringMVC概述
涵冰...
博客等级 码龄4年 2438粉丝 243原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涵冰...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值