SSM之SpringIOC【篇二】——入门篇

2024-03-06 17:18
文章标签 ssm 入门篇 springioc

本文主要是介绍SSM之SpringIOC【篇二】——入门篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Spring的IOC入门-环境搭建

  • (1)创建Project
    以我自己写的项目springcode为例。
    File–>New–>Project–>左侧选择maven,右侧勾上create from archetype–>选择maven-archetype-quickstart–>next–>命名springcode,选择路径,完成!
  • (2)创建模块module
    在springcode项目里创建新模块,右击springcode项目–>new module–>继续下来同创建Project一样。我给新模块命名为day21_springioc
  • (3)配置依赖
    在day21_springioc的pom.xml下配置依赖
<!--spring依赖 -->
<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.9.RELEASE</version>
</dependency>

Spring的IOC入门-代码编写

  • (1)定义Person类
public class Person {private String username;private String password;private  int id;private String name;private int age;private Date birthday;//arr  private String[] arr;//Listprivate List<String> list;//setprivate Set<String> set;//mapprivate Map<String,String> map;}
  • (2)手动完成创建与赋值
  • (3)由spring创建与赋值
    》创建容器对象
    》读配置文件
    new ClassPathXmlApplicationContext(“applicationContext.xml”);
    》从容器中查找getBean()
    Test01SpringIoc
public class Test01SpringIoc {@Testpublic void test01(){//1:创建ioc 容器对象  暂时看成mapClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");//2:给定配置文件的名称 applicationContext.xml//3:调用容器的getBean方法获取id对应的对象Person person = (Person) context.getBean("person");System.out.println(person);}
}

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"><!--    要让 spring容器给我创建一个person对象-->
<!--    配置类名,用于反向创建对象-->
<!--    同时给一个编号方便查找--><bean id="person" class="com.syy.domain.Person" />
</beans>

Spring的IOC入门-问题解答

  • (1)方法区别
context.getBean("id值", 类型.class);//无需转型
context.getBean("id值");//需转型
  • (2)bean标签的属性

id:bean标签的识别ID,理论上可以随便写
class:你要上Spring给你创建哪个类的对象,需要写上该类的全路径名

  • (3)赋值的方式有两种
Person person1 =  new Person();
//设置方法
person1.setId(1);
System.out.println(person1);
//构造方法赋值
Person person2 =  new Person(1,"jack",20,new Date());
System.out.println(person2);

applicationContext.xml
name:成员变量的名字
value:成员变量的值
一个property标签最后会调一个对应的set方法

 <bean id="person2" class="com.syy.domain.Person" ><property name="id" value="10"/><property name="name" value="rose"/><property name="age" value="20"/></bean>

Spring的IOC入门-通过构造方法创建对象

  • (1)利用已经写过的Person类, 目的是使用无参构造创建他的对象
  • (2)applicationContext.xml 中配置
 <!--   Person person2 =  new Person(1,"jack",20,new Date());-->
<!--    System.out.println(person2);--><bean id="date1" class="java.util.Date"/><bean id="person3" class="com.wzx.domain.Person" ><constructor-arg name="id" value="10"/><constructor-arg name="name" value="hello"/><constructor-arg name="age" value="20"/><constructor-arg name="birthday" ref="date1"/></bean>
  • 配置构造方法的参数的constructor-arg 如果有四个,就表示调的一个四个参数的构造方法。
  • value可以赋上基本类型数据与String,但是其他对象,要使用ref,表示在当前容器中查找一个已存在的对象

Spring的IOC入门-静态工厂造对象

  • (1)什么是静态工厂
    XxxFactory.get();
  • (2)通过调用静态方法获取bean对象
public class PersonFactory {public static Person getBean() {return new Person();//静态方法返回创建的对象}
}
  • (3)factory-method 调用方法获得bean对象
<!--    Person person1 = PersonFactory.getBean();-->
<bean class="com.syy.demo02.PersonFactory" factory-method="getBean" id="person4"/>

Spring的IOC入门-实例工厂造对象

  • (1)什么是实例工厂
    XxxFactory
  • (2)通过工厂对象调用成员方法获得bean对象
  • (3)factory-bean 创建工厂对象
  • (4)factory-method 调用方法获得bean对象
<!-- PersonFactory2 factory2 = new PersonFactory2(); 创建工厂-->
<!-- Person person1 = factory2.getBean();调用工厂的方法--><bean class="com.syy.demo03.PersonFactory2" id="factory2"/><bean factory-bean="factory2" factory-method="getBean" id="person5"/>

Spring的IOC入门-单例和多例

  • (1)问题: 每次获取对象的时候,spring是新创建一个对象还是始终给我们返回同一个对象.
    》单例是什么?
    内存中只有一个对象,每次获取到该对象的地址值一样。
    》多实例是什么?
    内存中的每个对象都是一个新的对象,他们的地址值都不同。
  • (2)答案: spring默认的情况下创建的对象都是单例的.(每次返回的对象都是同一个)。
scope="singleton" 单例(默认值)
scope="prototype" 多例
scope="request" 创建的对象放到request域中
scope="session" 创建对象放到session对象

单实例

<bean id="person" class="com.syy.domain.Person" scope="singleton"/>

多实例

<bean id="person" class="com.syy.domain.Person" scope="prototype"/>

Spring的IOC入门-Spring生命周期

  • (1)生命周期
    创建方法int
    销毁方法destory
    普通方法service
  • (2)属性
    init-method 当该对象初始化的时候该方法会自动执行
    destroy-method 当该对象即将销毁的时候会自动调用该方法
  • (3)测试
    context.close()关闭容器
public class Person{public void init(){System.out.println("哇哇...");}public void eat(){System.out.println("吃食堂...");}public void destory(){System.out.println("呜呜...");}
}
<bean id="person6" class="com.wzx.domain.Person"init-method="init"destroy-method="destory"/>

下一篇:SMM之Spring【篇三】——依赖注入

这篇关于SSM之SpringIOC【篇二】——入门篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/780772

相关文章

Spring Boot 入门篇

一、简介 Spring Boot是一款开源的Java Web应用框架,旨在简化Spring应用的初始搭建以及开发过程。它整合了Spring技术栈中的诸多关键组件,为开发者提供了一种快速、简便的Spring应用开发方式。Spring Boot遵循“约定优于配置”的原则,通过自动配置、起步依赖和内置的Servlet容器,极大地简化了传统Spring应用的配置和部署过程。 二、Spring Boot

【干货分享】基于SSM的体育场管理系统的开题报告(附源码下载地址)

中秋送好礼 中秋佳节将至,祝福大家中秋快乐,阖家幸福。本期免费分享毕业设计作品:《基于SSM的体育场管理系统》。 基于SSM的体育场管理系统的开题报告 一、课题背景与意义 随着全民健身理念的深入人心,体育场已成为广大师生和社区居民进行体育锻炼的重要场所。然而,传统的体育场管理方式存在诸多问题,如资源分配不均、预约流程繁琐、数据统计不准确等,严重影响了体育场的使用效率和用户体验。

(入门篇)JavaScript 网页设计案例浅析-简单的交互式图片轮播

网页设计已经成为了每个前端开发者的必备技能,而 JavaScript 作为前端三大基础之一,更是为网页赋予了互动性和动态效果。本篇文章将通过一个简单的 JavaScript 案例,带你了解网页设计中的一些常见技巧和技术原理。今天就说一说一个常见的图片轮播效果。相信大家在各类电商网站、个人博客或者展示页面中,都看到过这种轮播图。它的核心功能是展示多张图片,并且用户可以通过点击按钮,左右切换图片。

第49课 Scratch入门篇:骇客任务背景特效

骇客任务背景特效 故事背景:   骇客帝国特色背景在黑色中慢慢滚动着! 程序原理:  1 、 角色的设计技巧  2 、克隆体的应用及特效的使用 开始编程   1、使用 黑色的背景: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7d74c872f06b4d9fbc88aecee634b074.png#pic_center)   2

基于SSM+Vue+MySQL的可视化高校公寓管理系统

系统展示 管理员界面 宿管界面 学生界面 系统背景   当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。这样的大环境让那些止步不前,不接受信息改革带来的信息技术的企业随时面临被淘汰,被取代的风险。所以当今,各个行业领域,不管是传统的教育行业

SSM项目使用AOP技术进行日志记录

本步骤只记录完成切面所需的必要代码 本人开发中遇到的问题: 切面一直切不进去,最后发现需要在springMVC的核心配置文件中中开启注解驱动才可以,只在spring的核心配置文件中开启是不会在web项目中生效的。 之后按照下面的代码进行配置,然后前端在访问controller层中的路径时即可观察到日志已经被正常记录到数据库,代码中有部分注释,看不懂的可以参照注释。接下来进入正题 1、导入m

ssm 之事务管理出现错误

JDBC Connection will not be managed by Spring 项目采用的是分布式架构,分别有controller,service,solr三个服务器,之间通过dubbo进行调用,经过测试发现事务配置完以后不能通过spring进行管理,其中两条insert和一条update语句都执行完毕,异常并没有使得事务进行回滚,通过调取debug日志发现“JDBC Conn

【轻松上手postman】入门篇:如果根据接口文档写postman接口用例

在我们平时的测试工作中除了最基本的网页测试外,也会遇到没有页面但需要验证内部逻辑正确性的接口测试任务,在遇到没有网页的测试任务时,我们就要使用到接口测试工具来模拟对程序代码触发。 在接到接口测试任务时,一般都会拿到接口需求文档,没接触过接口测试的人看到接口文档正常反应一脸闷🤣不知如何下手怎么开始测试😓,下面我就来讲讲如何将接口文档上的一个个接口转换成postman用例 首先需要安装

SSM Spring MVC集成mybatis

一、练习目标 1、需求 完成部门基本的 CRUD 和分页查询,完成员工基本的 CRUD、分页查询和过滤查询(根据姓名和邮箱模糊查询,根据部门查询)。 2、技术架构 使用 Spring MVC + Spring + MyBatis,数据库选用 MySQL,视图选用 JSP。 3、SSM 集成作用及本质 作用:在框架上基础上开发,发挥各个框架在各层的好处,提高开发效率。 本质: Sp

入门篇:神奇的Annotation

涅槃1992 关注 2016.12.25 23:41* 字数 4964 阅读 1059评论 3喜欢 29 前面写了Android 开发:由模块化到组件化(一),很多小伙伴来问怎么没有Demo啊?之所以没有立刻放demo的原因在还有许多技术点没说完. 今天我们就来细细评味Java当中Annotation,也就是我们常说的注解. 本文按照以下顺序进行:元数据->元注解->运行时注解->编译时