Spring简单入门 - ioc

大二下学期了,发现身边的同学,工作室的下伙伴最近都准备考研,迷茫中不晓得怎么选择,学长考研复试中说这个CSDN写博客的阅读量是个加分点。之前学长一直叫我们写博客,记录自己的学习路程,发现还是很有用的。要接手工作室中写的高校云考勤这个项目,来参加学校里的软创比赛。高校云考勤微信公众号(用于大学、高中、初中、以及公司的考勤的APP),有做考勤这方面的大佬可以到GitHub上下载,指出不足,觉得好的也可以点上小星星。传送门:(https://github.com/TuGengs/cloudmanager)。目前项目可以支持自己学校的早检,本人和团队的小伙伴们正在开发宿舍检查,和后台数据分析。这个项目使用ssm框架,小弟对于ssm框架目前只学习了持久层的mybatis(PS:这个当时忘记记录,之后补齐),目前开始学习Spring框架,学习完ssm,在比赛完之后,我也会把项目上传至GitHub上,喜欢的朋友们记得帮忙点点小星星,投点小花花。本人写的有问题的地方,各位看到的大牛多多指正,谢谢大家。

1.Spring是什么呢?

  • spring是一个开源的、轻量级的框架,使用spring框架可以简化企业级开发。
  • spring是一个一站式框架,spring在JavaEE三层架构中,每一层都提供了不同的解决技术
    • web:SpringMVC
    • service:Spring的ioc
    • dao:Spring的jdbctemplate

2.Spring的特点

> - 轻量-----spring是一款轻量级的的框架,相比于EJB,spring无需依赖于其他的框架。
> - 面向切面编程 AOP
> - 控制反转 IOC
> - 依赖注入
> - 容器
> - 框架

3.什么是IOC?

> - ioc的英文全称为(Inverse of Control )中文:控制反转
控制反转:是对组件对象控制的转移,从程序代码的本身转移到外部的容器
> - 为什么要使用ioc?
比如有一个类,在这个类中有方法但不是静态的,在另一个类中想调用这个方法,一般我们的解决的方案是使用new创建该类的对象。但是这种方法会使得两个类的耦合太高,在程序上一般要做到“高内聚,低耦合”。所以使用到ioc

4.ioc的底层原理。

> - ioc底层原理使用技术
(1)XML配置文件
(2)dom4j解析XML
(3)工厂设计模式
(4)反射
> - 第一步:配置XML文件,配置要创建的对象类<`bean id="user"` class="cn.banyue.User">id是User类的别名,这个是可以随你自己取名的class是该类所在的包下对应的路径
> - 第二步:创建工厂类,使用dom4j的解析配置文件 + 反射机制
public static User getUser() {//1.使用dom4j解析xml配置文件//根据解析到的id得到对应的class的属性值String classValue = "class的属性值";//2.使用反射创建类对象Class clazz = Class.forName(classValue);User user = clazz.newInstance();return user;//这样降低了类之间的耦合性
}

5.ioc的简单入门案例

> - 第一步:导入jar包,没有spring的jar包朋友们可以到spring官网下载(https://repo.spring.io/release/org/springframework/spring/)
导入核心的四个jar即可。(Beans、Cores、Context、Spel)
> - 第二步:创建User类,使用dom4j的解析配置文件 + 反射机制
> - 第三步:创建spring的xml配置文件,配置创建的类1、spring的核心配置文件名称和位置不是固定不变的,建议放到src下面,官方建议名称:applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!-- ioc入门 --><bean id="user" class="com.banyue.ioc.User"></bean>
</beans>
  • 第四步:创建测试类,测试是否能获取user类的方法
public class Testioc {@Testpublic void testUser() {//1.加载spring配置文件,根据配置文件创建对象ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");//2.得到配置创建的对象User user = (User)context.getBean("user");System.out.println(user);user.add();}
}

这就是你要找的Spring-ioc简单入门!相关推荐

  1. SpringBoot + Spring Security 简单入门

    这篇文章主要介绍了SpringBoot + Spring Security 简单入门 Spring Security 基本介绍 这里就不对Spring Security进行过多的介绍了,具体的可以参考 ...

  2. Spring IOC快速入门

    Ioc是什么,能够解决什么问题,它的原理是如何实现的呢? IOC inversion of Controller 控制反转. 在程序中所说的IOC其实简单说,就是原来由我们自己实例化的对象交给spri ...

  3. Spring的简单入门

    Spring框架 什么是Spring Spring是分层得javaSE轻量级开源框架,以IOC(Inverse of Control 控制反转)和AOP(Aspect Oriented Program ...

  4. Spring优点、Spring IOC 底层实现原理、Spring IOC 快速入门案例、何为 DI 依赖注入

    Spring 概述 Spring 是一个开源框架,Spring 为简化企业级应用开发而生,使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实现的功能.Spring 是 J ...

  5. Spring AOP简单入门学习

    Spring AOP 1.主要内容: 2.代理模式 ​ 代理模式在 Java 开发中是⼀种⽐较常⻅的设计模式.设计⽬的旨在为服务类与客户类之间插⼊其他功能,插⼊的功能对于调⽤者是透明的,起到伪装控制的 ...

  6. Spring Batch简单入门(四) - Job启动与监控

    接上一章,本章我们介绍Job的启动与监听. Running a Job Spring Boot默认支持自动启动已配置好的Job,我们可以通过配置项**spring.batch.job.enabled= ...

  7. Spring IOC详解 以及 Bean生命周期详细过程 可以硬刚面试官的文章

    面试题 来自面试官发自灵魂深处的拷问:谈谈你对spring的理解: 一脸懵逼的求职者的内心活动:啥?  具体的问题是什么?现在的面试都不按套路出牌了吗?  抛出一个这么大的问题,你让我怎么回答? 一脸 ...

  8. Spring Web Flow 入门demo(一)简单页面跳转 附源码

    转载地址 http://blog.csdn.net/hejingyuan6/article/details/46508821 spring Web Flow (SWF)是Spring Framewor ...

  9. Spring IoC的理解----找女朋友的方法

    Spring IoC,控制反转的意思. 1.传统的对象之间的引用是这样的:对象A需要用到对象B的时候,就主动去创建一个对象B.就如我们传统的找女朋友方法一样,当我们需要找女朋友的时候,会主动的去找符合 ...

最新文章

  1. 借教室(NOIP2012)
  2. CTR模型越来越深,如何让它变轻?
  3. Windows 8 IIS中配置PHP运行环境的方法
  4. windows上安装mysql
  5. CodeForces - 1559D2 Mocha and Diana (Hard Version)(思维)
  6. 深度学习(二十一)——SRCNN, DRCN, VDSR
  7. Codevs 1689 建造高塔
  8. string类的写时拷贝
  9. c++string类的常用方法详解
  10. 嵌入式linux 零基础-实践起步 --- 003 --- 交叉编译中环境变量PATH的设定
  11. ASP.NET中 DataGrid简单自定义分页
  12. 使用EF Core和AngularJS的Master Chef(第3部分)ASP.NET Core MVC
  13. LabelSmoothing标签平滑
  14. 遗传算法的简介与应用详细过程
  15. vc服务器的作用,总结虚拟化服务器的好处
  16. 网页设计收藏站 80 个
  17. 一种很强的对联,看了让我想起高中时期那会儿对中文的崇拜!
  18. 微信小程序-腾讯云即时通信 IM 小程序直播(一)
  19. 燕大计算机研究生毕业待遇,研究生人均“月薪上万”是真是假,过来人坦言:想想就好,别认真...
  20. https安全证书提示证书风险怎么办

热门文章

  1. 根据图片名字在drawable中得到图片
  2. 看了 72 位图灵奖得主成就,才发现我对计算机一无所知
  3. 首都师范学院计算机,2020年首都师范大学计算机应用技术考研分析
  4. js报错- cannot set property xxx of undefined
  5. [NC1105B]下雨天
  6. 谷歌浏览器直接启动打印不预览解决方案
  7. 使用 OpenCV 和 Python 从视频中快速提取帧
  8. CTF压缩包加密破解总结
  9. 工业相机内外触发以及控制频闪灯
  10. iOS ZBarSDK 用ZBarReaderView自定义二维码扫描界面