浅析spring

概念

    spring是一个轻量级的框架因为它不会依赖很多的东西,是一个管理bean类的容器,也是一个一站式框架(在三层架构中都提供了不同的解决技术:web层是提供了springmvc技术,service层提供了ioc的技术,持久层提供了jdbcTemplate)。

两大核心

      IOC(控制反转)

            原理一开始创建对象的方式是通过new的方式,但是这样耦合度非常的高,如果要做修改对象操作的话,就会要改很多的地方繁琐还容易出错,工厂模式虽然可以改善,但是每次都要编译;但是用ioc的话就是通过把对象交给spring容器来管理,从而来达到不用写很多繁琐的代码降低耦合的目的。

            bean的详解:bean标签的属性:id(自定义对象名),class(创建类对象的全路径),name,scope(bean的作用范围:singleton,是默认的单例模式,在spring容器中只存在一个;propotype是非单例模式,每次使用都会创建一个新的对象)。

            注入方式:1、set注入(在实体类要写set方法)2、构造注入(在实体类要写构造方法);注入属性的类型可以是普通类型也可以是对象类型,还可以是复杂类型(list,map,properties)

            用到的技术:xml,dom4j,工厂设计模式,反射(流程:在xml写一个文件,创建一个工厂,通过dom4j解析拿到id从而获取值也就是class,再拿值通过反射拿到对象并且返回)。

            解决的问题:避免了繁琐的创建对象,降低了类之间的耦合度。

           基于注解方式:在xml文件中添加配置<context:componenet-scan base-package="包的名称">开启注解扫描,然后在类上面加@Componenet(value="user")就是创建对象,value相当于是xml配置中的id。创建对象的四个注解:@Component,@controller(web层),@Service(业务层),@repository(持久层)都是用来创建对象。属性的注解:Autowired/Resource(name="对象名")

            控制反转(IOC)和依赖注入(DI)的区别:控制反转把对象的创建交给spring进入配置,依赖注入是向类里面的属性设置值。关系:依赖注入不能单独存在,需要在控制反转的基础上完成操作。

            整合web项目原理:在web文件创建一个监听器,当服务器启动的时候会自动加载spring的配置文件,并且创建对象,存放到servletContext域里面

      AOP(面向切面编程)

        原理:是一个切面编程,语法是根据Aspectj来的,作用是为了处理多个类相似的操作而不侵入类中,一个处理业务成为一个面,切面是对于业务而言。

        通知:

            1、前置通知@Before

            2、后置通知@AfterReturning

            3、异常通知@AfterThrowing

            4、最终通知@After

            5、环绕通知@Around(带有返回值,可以改变后置通知的返回值)。

spring优缺点:安静

    优点:

              1、非常优秀的轻量级,低侵入式的框架。

              2、ioc的容器周期式的管理,降低组件的耦合。

              3、对其他的容器有非常好的支持,像对持久层的hibernate,mybatis,TOP Link等。

   缺点:

            1、web层的mvc框架国语单薄,对页面框架的支持,跟其他框架还有很大的差距。

            2、不是一站式解决方案。

            3、使用反射来管理容器的bean,在程序中增大了内存和运行计算的时间。

            4、部分组件功能还有待完善。

扩展:

    当spring的配置文件没有提示的时候就把scheam约束的最后半句话拷贝,然后window->properties->catalog->add->key的位置就粘贴,然后上面就选择该约束的目录,还有一种方法就是先在xml文件里面把要用的标签的代码先写一遍,再写的时候就会有提示了(缓存)。

在两个java类里面,spring的依赖不可以相互注入

 

weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
weixin102旅游社交微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值