SpringIOC

什么是IOC?

  1. 把原来new对象的这种方式转换成了,spring通过反射创建对象的方式
  2. spring创建完的对象放到一个容器中,谁需要就给谁注入进去

Spring IOC环境搭建

  • 创建Maven Project

  • 配置Pom.xml文件

-课堂小练习:
-使用注解配置PersonService与PersonDao

 -  -  -<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.6.RELEASE</version></dependency>

SpringIOC入门代码测试

  1. 定义Person类 由spring创建并且赋值
  2. 创建容器
  3. 配置文件编写
    new ClassPathXmlApplicationContext(“applicationContext.xml”);
  4. 最后使用的getBean()从容器中取出
  • Test01SpringIoc
    private static  final Logger log= LoggerFactory.getLogger(PersonService.class);private ClassPathXmlApplicationContext context;@Beforepublic void init(){context = new ClassPathXmlApplicationContext("applicationContext.xml");}@Testpublic void test01(){//        Person person2 = (Person) context.getBean("person2");Person person2 = context.getBean("person2",Person.class);log.debug(person2.toString());}
  • 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"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"><!--    要让 spring容器给我创建一个person对象--><!--    配置类名,用于反向创建对象--><!--    同时给一个编号方便查找--><bean id="date1" class="java.util.Date"/><bean id="person" class="TestPack01.pojo.Person" /><bean id="person2" class="TestPack01.pojo.Person"><property name="id" value="2"/><property name="username" value="虎太郎2"/>

Spring面向接口原理

  • 课堂前小练习:
    怎么使用注解配置PersonService与PersonDao?

  • (1)接口定义
    业务类接口com.xxx.service.IXxxService
    Dao接口 com.xxx.dao.IXxxDao

  • (2)实现类
    com.xxx.service.impl.XxxServiceImpl
    com.xxx.dao.impl. XxxDaoImpl

  • (3)一个接口有多个实现类,使用接口调用,将来更换实现类时,代码耦合底更低
    判断方法:删除法

  • 将来实现类对象由Spring管理,成员变量使用依赖注入

  • IPersonService

@Service
public class PersonService {private static  final Logger log= LoggerFactory.getLogger(PersonService.class);@AutowiredPersonDao personDao;public void setPersonDao(PersonDao personDao) {this.personDao = personDao;}public boolean login(Person per){log.debug(per+"login");Person person = personDao.find(per);if (person == null){return false;}else {return true;}}
}
  • IPersonDao
@Repository
public class PersonDao {public Person find(Person per) {if("虎太郎".equals(per.getName())&&"12345".equals(per.getPassword())){return per;}else{return null;}}
}
  • applicationContext.xml
    记得扫描注解
 <context:component-scan base-package="TestPack01"/>
  • TestPersonService
@Test
public void test07(){//PersonService personService = new PersonService();PersonService personService = (PersonService) context.getBean("personService");Person p  = new Person();p.setName("虎太郎");p.setPassword("12345");boolean flag =personService.login(p);log.debug(flag+"");
}
  • 结果为:

SSM基础框架之SpringIOC相关推荐

  1. SSM基础框架之SpringAOP

    SSM基础框架之SpringAOP Spring AOP背景 在开发中,分布于应用中多处的功能被称为横切关注点(cross-cutting concerns).通常这些横切关注点从概念上是与应用的核心 ...

  2. Spring+SpringMVC+MyBatis+SpringSecurity+EhCache+JCaptcha 完整Web基础框架(前言)

    简单介绍一下,本框架的基本功能点: Spring:整个框架的主体部分,这个自不用说. SpringMVC:MVC部分我还是比较喜欢Spring的. MyBatis:选型的时候选择这个ORM主要也是考虑 ...

  3. 【SSM基础】Logback日志管理

    [SSM基础]Logback日志管理 其他文章: bookcase微服务实战 1.前言 这篇我们说下日志管理,业界常用的日志管理一共有几种: java.util.Logging,Log4j,Log4j ...

  4. (Spring+SpringMVC+MyBatis)SSM三大框架整合教程

    目录 一.基本概念 1.Spring 2.SpringMVC 3.MyBatis 二.开发环境搭建 三.Maven Web项目创建 四.SSM整合 1.Maven引入需要的JAR包 2.Spring与 ...

  5. 微服务架构的基础框架选择:Spring Cloud还是Dubbo?

    最近一段时间不论互联网还是传统行业,凡是涉及信息技术范畴的圈子几乎都在讨论微服务架构.近期也看到各大技术社区开始组织一些沙龙和论坛来分享Spring Cloud的相关实施经验,这对于最近正在整理Spr ...

  6. python基础框架_Python基础框架和工具-阿里云开发者社区

    Python基础框架和工具 最近在学Python金融大数据分析,在安装Python进行大数据分析的环境时遇到很多问题,例如:在安装pandas包时候就要到各种错误,总是缺少很多安装包,最后发现利用Py ...

  7. Java并发基础框架AbstractQueuedSynchronizer初探(ReentrantLock的实现分析)

    AbstractQueuedSynchronizer是实现Java并发类库的一个基础框架,Java中的各种锁(RenentrantLock, ReentrantReadWriteLock)以及同步工具 ...

  8. 【转载】微服务,我们需要哪些基础框架?

    微服务(MicroServices)架构是当前互联网业界的一个技术热点,圈里有不少同行朋友当前有计划在各自公司开展微服务化体系建设,他们都有相同的疑问:一个微服务架构有哪些技术关注点(technica ...

  9. SSM整合框架实现ajax校验

    SSM整合框架实现ajax校验   刚学习了ssm框架,ajax校验成功,分享下 1.导入jar包 2.配置spring-servlet.xml 1 <bean class="org. ...

最新文章

  1. 再见,996!传腾讯光子调整加班机制,21 点前必须离开工位
  2. 活久见啊,WPF工资已经这么高了!
  3. php-v 查看不到版本,解決php -v查看到版本於phpinfo()打印的版本不一致問題
  4. requests模块相关用法
  5. java中char类型可以存储两个中文字符吗
  6. CVE-2020-0688 Exchange 远程代码执行分析
  7. Operating System-进程间互斥的方案-保证同一时间只有一个进程进入临界区(3)- TSL指令...
  8. Error creating bean with name 解决办法
  9. apt-get update出现NO_PUBKEY问题解决
  10. Magic Squares
  11. font在html语言中是什么意思,font标签什么意思
  12. 目标检测算法之YOLOV5
  13. 联想y450安装黑苹果
  14. android 本地阅读pdf,Android 打开本地pdf文件
  15. 微信公众号 微信连wifi最全的教程
  16. 四、Mosquitto 高级应用之用户配置
  17. OTN关联开销(电层开销)OTU开销ODU开销OPU开销
  18. Three.js 3D 动画场景搭建
  19. Kafka: Consumer
  20. 用Rax开发一个联想搜索输入框,内附封装后的npm组件

热门文章

  1. 关于android开发中使用VideoView切换视频源时同时改变大小会出现下一个视频第一帧为上一个视频最后显示帧问题解决
  2. Neo4j安装Apoc插件
  3. 数学回味系列之23 - 小明买书
  4. 春节还怕抢不到票?Github上11k star开源神器助你一臂之力
  5. 如何用语雀画板,轻松画出架构图?
  6. S7-1200 PLC通过编码器实现高速计数器的测速功能
  7. 非人学园服务器维护,非人学园进不去怎么办 非人学园闪退黑屏怎么办
  8. python同花顺 财务_同花顺使用帮助之财务分析篇
  9. 隐私计算头条周刊(2.13-2.19)
  10. 计算机配机方案及理由报告,大学生社会调查计算机配机方案的报告范本.docx