Spring框架的整理

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

一:核心

    (1):IOC  控制反转

    (2):AOP 面向切面

二:优点

     (1):方便解耦,简化开发(把对象的创建和依赖关系的维护交给Spring)

     (2):对AOP的支持,实现拦截,监控,事务管理等功能

     (3):Junit4的支持(测试类  @RunWith(SpringJUnit4ClassRunner.class)    @ContextConfiguration("classpath:applicationContext.xml"))

     (4):支持各种框架的整合

     (5):对部分难用的API做了封装,如JDBC,JavaMail,远程调用等

三:关于applicationContext

      (1):ClassPathXmlApplicationContext  加载类路径下的Spring的配置文件

      (2):FileSystemXMLApplicationContext       加载本地磁盘下的Spring的配置文件

四:Beanfactory和ApplicationContext的区别

                    Beanfactory在getBean的时候才会生成类的实例

                    ApplicationContext在加载ApplicationContext.xml时就创建

五:Bean 的属性

           id(唯一 ,不能有特殊符号)

          name(可以有特殊符号,整合Struts框架的时候会用到)

          class

         scope(默认情况下是单例模式singleton    prototype是多利)

         生命周期的方法init和dsetory

六:DI注入

            (1):构造方法注入:constructor-arg     name    value    当为对象用ref

            (2):set方法注入:property      name    value    当为对象用ref

           (3):名称空间P的属性注入方式

                         (一):引入P名称空间(schema约束)

                        (二):使用p名称空间               格式:普通属性   p:属性名=" "   对象类型属性   p:属性-ref=" "

            (4):SPEL方式的属性注入        

                                      语法         #{SPEL }

            (5):复杂类型注入

                                   例如:数组;List集合;map集合;properties的注入等

         <property name="strings">
			<array>
				<value>aa</value>
				<value>bb</value>
			</array>
		</property>
		<property name="list">
			<list>
				<value>中国</value>
				<value>大地</value>
			</list>
		</property>
		<property name="set">
			<set>
				<value>东邪</value>
				<value>西毒</value>
				<value>南帝</value>
				<value>北丐</value>
			</set>
		</property>
		<property name="map">
		    <map >
		       <entry key="张翠山" value="1"></entry>
		       <entry key="张无忌" value="2"></entry>
		    </map>				
		</property>		
         <!-- 给属性集合文件赋值 -->
        <property name="properties">
             <props >
                 <prop key="杨过">郭襄</prop>
                 <prop key="小龙女">绿鄂</prop>
             </props>    
        </property>


七:关于多个Spring配置文件的解决方案


                      (1): ClassPathXmlApplicationContext(“applicationContext1.xml ”,“ applicationContext2.xml ”)

                      (2):或者采用包含的方式<import resource="配文件"></import>

八:Spring在各个层的注解

                      在类上的注解:@component(value=" ")        是在xml中注册对象时所对应的id

                      web层:@controller

                      service层:@service

                      持久层:@Repository

                      属性注入的注解(可以不用提供set方法)

                      @Autowired

                     @Qualifer(“属性名”)

                      关于生命周期配置的注解

                      @postConstruct     相当于init-method

                      @preDestory          相当于destory-method

九:AOP面向切面的编程(通过预编译方式和运行期动态代理实现程序功能的统一维护)

                    在不修改源码的情况下,对程序进行增强

                    AOP进行权限校验,日志,记录,性能等的监控,事务的控制

                     底层采用代理机制

                    (一):JDK动态代理,针对实现了接口的类进行代理

                    (二):Cglib的动态代理,针对没有实现接口的类产生代理,应用的是底层的字节码增强的技术,生成当前类的子类对象

十:AOP的相关术语

                    连接点:目标类中的所有方法(Spring只支持方法类型的连接点)

                    切入点:需要被增强的方法

                   通知类:公共模块的能力

                   目标类:服务层的类

                   织入:通知应用到目标创建代理类的过程,是一个虚拟的过程

                  代理类:整合目标类和通知类

                  切面:通知和切入点关联就叫切面

                  备注:通知的类型(前置,后置和环绕)和切入点的表达式 execution()

十一:AspectJ的AOP注解

                    @After              @AfterReturning                                 @Around

                    关于它的xml配置为


          <!-- AOP编程: aspectj的方式-->
         <aop:config>
	<!-- aspectj的单独节点 :关联到aspectj的通知-->
	    <aop:aspect ref="myAspect">
	<!-- 定义切入点 -->
	
	      <aop:pointcut expression="execution(* com.qf.service.*.*(..))" id="mpPoint"/>
	<!-- aspectj的通知 
			method=""写的是自定义的方法名称
			-->
		<!-- 	<aop:before method="befor" pointcut-ref="mpPoint"/> -->		
			<aop:after-returning method="after" returning="res" pointcut-ref="mpPoint"/>
			<!-- <aop:around method="round" pointcut-ref="mpPoint"/> -->			
	</aop:aspect>	
	     </aop:config>

若有错误的地方或不足的地方,请多多指教,谢谢!!!
Spring框架总结 简介 创立于 2003年 , 是为了解决企业级开发的复杂性的! 是一个分层的se/ee(javase和java ee)一站式轻量级开源框架 作用: 1.Spring是一个开元的轻量级的应用开发框架,其目的是用于简化企业级应用程序开发,减少侵入; 2.Spring的IOC和AOP应用,将组件的耦合度降至最低,即解耦,便于系统的维护和升级; 3.可以与第三方框架和技 阅读详情

相关推荐

Spring (一 ) 概述与介绍

目录 1、Spring概述 2、Spring的模块介绍 Spring框架分为四大模块: 3、Eclipse安装Spring的插件 1、Spring概述 ①Spring是一个开源框架Spring为简化企业级开发而生,使用Spring开发可以将Bean对象,Dao组件对象,Service组件对象等交给Spring容器来管理,这样使得很多复杂的代码在Spring中开发却变得...

喜欢历史的码农 10万+

Spring框架简介

Spring框架是一个JAVA框架,提供了开发JAVA应用程序时所需的全面的基础架构。Spring负责基础结构所以你可以把注意力放到程序实现上。            Spring 可以使你从“简单的Java对象”(POJO)构建应用程序,并且将企业服务非侵入性的应用到 POJO。此功能适用于 Java SE 编程模型和完全或者部分的 Java EE 。         以下是作为一个应用

BigZ的专栏 5602

Spring框架的好处,为什么要用Spring?

1.方便解耦,便于开发(Spring就是一个大工厂,可以将所有对象的创建和依赖关系维护都交给spring管理) 2.spring支持aop编程(spring提供面向切面编程,可以很方便的实现对程序进行权限拦截和运行监控等功能) 3.声明式事务的支持(通过配置就完成对事务的支持,不需要手动编程) 4.方便程序的测试,spring 对junit4支持,可以通过注解方便的测试spring 程序 ...

成长历程 3万+

Spring框架整理

但是要注意,每次调取的bean是同一个对象,要想创建新的对象,要在配置文件中设置scope=”prototype”(原型模式)①<property name="message" value="今天不下雨"></property>如果外层有启动事务,加入该事务;如果外层有启动事务,挂起该事务,等待创建的新事务完成后再恢复外层事务(无论如何创建新事物)<constructor-arg name="属性名" value="属性值">如果外层有事务,挂起该事物,等待创建的新方法以非事务的方式完成后再恢复外层事务。

2301_76744228的博客 558

Spring 框架知识整理

配置@Component @Bean … @Autowired加载Spring容器实例化(new Bean类)解析依赖注入(解析@Autowired @Value)初始化(调用初始化回调方法,由程序有来配置)基于接口进行回调:通过类实现 InitializingBean 借口,并且重写afterPropertiesSet方法,再初始化Bean时自动调用。

NovakG_的博客 1273

八股知识整理——Spring框架基础

Spring容器启动时:扫描到@Component注解的类发现它有@Aspect注解,知道这是一个切面类方法调用时:Spring框架扫描当调用包下任何带有@AutoFill注解的方法时Spring AOP代理机制会拦截这个方法调用先执行@Before通知中的autofill()方法然后再执行原始方法:匹配com.sky.mapper包下所有类的所有方法:同时要求方法上有@AutoFill注解两者用&&连接表示"与"关系4. 例子:实现某些字段自动填充的注解。

wxz567的博客 953

框架整理spring框架

1.1 什么是Spring Spring是一个开源框架,同时也是一个轻量级的IOC和AOP容器框架 1.2 Spring的优点 1. Spring是非侵入式的,基于Spring开发的应用一般不依赖于Spring的类 2. Spring是个容器,因为它包含并且管理应用对象的生命周期和配置,比如对象的创建、销毁、回调等 3. Spring提供对事务的管理 4. Spring对主流的框架...

my_ha_ha的博客 259

整理一下spring框架

spring注解

Roenfee的博客 228

整理Spring框架

运行时类信息访问:反射机制允许程序在运行时获取类的完整结构信息,包括类名、包名、父类、实现的接口、构造函数、方法和字段等。动态对象创建:可以使用反射API动态地创建对象实例,即使在编译时不知道具体的类名。这是通过Class类的newInstance()方法或Constructor对象的newInstance()方法实现的。动态方法调用:可以在运行时动态地调用对象的方法,包括私有方法。这通过Method类的invoke()方法实现,允许你传入对象实例和参数值来执行方法。访问和修改字段值。

kelvin的博客 1328

spring框架知识整理

什么是spring Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核。 spring的功能 简单来说,spring就是用来管理对象的,把对象的创建、初始化、销毁、对象间的相互依赖配置等工作交给spring容器来做,由spring容器控制对象的生命周期。 spring的优点 1)方便解耦,简化开发 通过 Spring提供

寻找你的海洋 2622

Spring框架重要注解和类(接口)整理Spring

Spring框架重要注解和类(接口)整理 一、Spring配置类注解和配置 基本配置类(通用注解) 注解名称 作用 @Configuration 指定标明的类为配置类 @ComponentScan(basePackages={“cn.zzcfirst.mapper”}) 将指定包中的组件添加到容器中 @MapperScan(basePackages = {“cn.zzcfirst.mapper”}) 将指定包dao层Mapper接口添加到容器中 @Bean 声明方法为创建bean

AC_sunK的博客 683

关于Spring框架整理

SSM整合 环境要求: IDEA MySQL 507019 Tomcat 9 Maven 3.6 要求:需要熟练掌握MySQL数据库,JavaWeb及Mybatis知识,简单的前端知识; 需求分析-----》设计数据-----》业务-----》前端界面 下面建一个图书的增删改查: 第一部分(整合Mybatis) 数据库环境: 创建一个存放书籍数据的数据库表 CREATE DATABASE `ssmbuild`; USE `ssmbuild`; DROP TABLE IF EXISTS `bookst

X318266741的博客 281

Spring框架知识整理

Spring框架主要构成 Spring框架主要有7个模块: 1.Spring AOP:面向切面编程思想,同时也提供了事务管理。 2.Spring ORM:提供了对Hibernate、myBatis的支持。 3.Spring DAO:提供了 对Data Access Object模式和JDBC的支持。实现业务逻辑与数据库访问代码分离,降低代码耦合度。 4.Spring Web:提供了Servlet监...

weixin_34297704的博客 160

Spring框架整理1

spring是一个开源框架,spring是于2003年兴起的一个轻量级的java开发框架,由rod johnson在其著作expert one-on-one j2ee development and design中阐述的部分理念和原型衍生而来.它是为了解决企业应用开发的复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为j2ee应用程序开发提供集成的框架....

Albert_yin的博客 545

spring框架的一些小整理

spring是一个轻量级的/开源的/最受欢迎的/企业级的 java应用程序开发框架。 在理解spring是什么之前,有几个通用概念需要先理解: 1.控制反转IoC(inversion of control):   java编程中的创建对象一般是由我们来控制的(new一个对象),而控制反转的意思就是,将创建对象/配置对象参数/管理其生命周期的控制权都交给springIoC容器。只是用于实例化对...

weixin_30414635的博客 66

spring框架框架整理

1spring框架概述 1.1什么是spring Spring是一个开源框架Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使...

miaoxiai的博客 390
上一篇: 集合的遍历
下一篇: 关于SSH框架的完整配置
XXSession
博客等级 码龄9年 10粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值