通过实例解析Spring Ioc项目实现过程
作者:yaominghui 发布时间:2023-11-24 10:12:33
标签:spring,Ioc,项目
0. Ioc
https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html
主要是实现一个控制反转,耦合性大大降低。
1. 建maven项目
建立一个空的maven项目,然后pom.xml添加spring-context的依赖:
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.7.RELEASE</version>
</dependency>
2. 创建pojo java对象
package com.aca;
public class Hello {
private String str;
public void setStr(String str) {
this.str = str;
}
public String getStr() {
return str;
}
public Hello(String str){
this.str = str;
}
@Override
public String toString() {
return "Hello{" +
"str='" + str + '\'' +
'}';
}
}
3. 创建bean xml配置元数据
配置文件放在resources下。
这里以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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="Hello" class="com.aca.Hello">
<constructor-arg type="java.lang.String" value="fffff"/>
</bean>
</beans>
如果有多个resource或者目录不一致,就需要import一下:
<beans>
<import resource="services.xml"/>
<import resource="resources/messageSource.xml"/>
<import resource="/resources/themeSource.xml"/>
<bean id="bean1" class="..."/>
<bean id="bean2" class="..."/>
</beans>
里面可以调用构造函数来初始化一下bean。
4.创建spring 上下文
这里用ClassPathXmlApplicationContext 方法。
ApplicationContext context = new ClassPathXmlApplicationContext("hbean.xml");
// retrieve configured instance
Hello hello = context.getBean("Hello", Hello.class);
// hello.setStr("abc");
System.out.println(hello);
直接可以用这个bean,由xml注入。
5. Error:java: 错误: 不支持发行版本 5
将file- project structure 中的jdk版本选成跟本地一直,比如我这个jdk14
将build -> java complier中的两个版本选择成跟本地一致,这里是14
这两步做好以后不会报错,maven里面不需要选择版本。
6. 如果报xml的问题
xml declaration should precede all document
那是因为xml 第一行是空格了,必须<?xml 做为第一行。
来源:https://www.cnblogs.com/gqdw/p/13130949.html


猜你喜欢
- 一、导航栏UINavigationBar1、导航栏的使用在iOS开发中,我们通常会使用导航控制器,导航控制器中封装了一个UINavigati
- AOP概念的引入传统的登录原理:如上图所示这是一个基本的登录原理图,但是如果我们想要在这个登录之上添加一些新的功能,比如权限校验那么我们能想
- Guava为Java并行编程Future提供了很多有用扩展,其主要接口为ListenableFuture,并借助于Futures静态扩展。继
- 在spring中有很多以XXXAware命名的接口,很多人也不清楚这些接口都是做什么用的,这篇文章将描述常用的一些接口。一,Applicat
- 一、业务需求实现省份与城市的二级联动二、实现效果三、代码实现1. province_city.jsp前端界面实现<%@ p
- WPF换肤的设计原理,利用资源字典为每种皮肤资源添加不同的样式,在后台切换皮肤资源文件。截图上图中,第一张图采用规则样式,第二张图采用不规则
- EntityWrapper的in用法EntityWrapper<UserLife> wrapper = new EntityWr
- Java也提供图像化编程图形化GUI(图形用户界面)GUI1 Graphical User Interface(图形用户接口)2
- [LeetCode] 144. Binary Tree Preorder Traversal 二叉树的先序遍历Given a binary
- 话说为了防止 * ,业内有不成文规定,手机公司在做camera时,点击拍照和录像键的时候,必须要有提示音。因此,google也就非常人性化的将
- 本文实例为大家分享了Android刮刮卡效果控件,供大家参考,具体内容如下刮刮卡类: package com.reyo.view;impor
- 一. 概述: Spinner是我们所熟悉的下拉框列表。与ListView类似,我们必须
- 本文将用两个方法来写类似汽车荷载的进度用LinearLayout的addview方法加上for循环用自定义控件的方法先上截图1. 用Line
- 下面一段代码给大家介绍了android 自定义顶部导航栏控件功能,具体代码如下所示:class HeaderBar @JvmOverload
- 本文实例为大家分享了C++实现幸运大抽奖的具体代码,供大家参考,具体内容如下程序效果:#ifndef DIALOG_H#define DIA
- 一、JAVA简要概述先说一下java之父,詹姆斯·高斯林这是一个爱喝咖啡而又强大的男人。再来看一下JAVA有多火在TIOBE排行榜上JAVA
- 本文实例分析了C#队列Queue用法。分享给大家供大家参考。具体分析如下:队列(Queue)在程序设计中扮演着重要的角色,因为它可以模拟队列
- 一、场景public class OrderModel {private List<String> favorableDescL
- 本文实例为大家分享了java实现学生成绩档案管理系统的具体代码,供大家参考,具体内容如下实验要求• 学生信息录入,信息包括学号、姓名、专业、
- 我们的日常开发中经常用到下拉刷新,而网上评价最好的开源下拉刷新组件当然还是android-Ultra-Pull-To-Refresh 此组件