Spring最核心的特点就是控制反转:(IOC)和面向切面(AOP)

首先作为一个Spring的项目需要导入的四个核心包,一个依赖:

四核心:core、context、beans、expression

一个依赖:commons-loggins.jar

其次注意在Spring的jar包中,有三种文件:

1.字节码文件[真正使用的jar包]

2.文档-javadoc

3.源码文件-sources

关于Spring的配置文件:

位置:我们一般放在src(classpath)下。

名字:名字一般取名applicationContext.xml。

内容:添加schema约束。[约束文件位置:docs\spring-framework-reference\html\ xsd-config.html]

以上都是一般的开发规则:是约定俗称,但并不是必须;

位置任意、名字任意,但是内容必须是schema约束!

测试控制反转:

所谓控制反转其实无非就是原来我们自己new的东西,交给了Spring,让它去帮助我们new。

service的接口

package com.a_ioc;

public interface UserService {
boolean addUser();
}

service的impl:

package com.a_ioc;

public class UserServiceImpl implements UserService{

	@Override
public boolean addUser() {
System.out.println("add user");
return false;
} }

位于和当前类同包块下的beans.xml[其实就是Spring的配置文件]

<?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"> <!-- 配置所需要创建对象,id用于之后从Spring中获得实例时使用的,class需要创建实例的全限定类名 -->
<bean id="UserService" class="com.ioc.UserServiceImpl"></bean>
</beans>

因为当前的Spring的配置文件是位于当前的包块下面,而默认的寻径位置又是在src下面,所以必须从src下面开始找,并且xml名称为beans.xml

package com.a_ioc;

import org.junit.jupiter.api.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestIoc { // IOC:控制反转
@Test
public void testCreateBean() {
// 从Spring容器中获得:因为默认是从src下走的,所以使用src下相对路径来找
String xmlPath = "com/ioc/beans.xml";
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath); // 不需要自己new,都是从Spring容器中获得
UserService userService = (UserService) applicationContext.getBean("UserService");
userService.addUser();
}
}

Spring第一课:配置文件及IOC引入(一)的更多相关文章

  1. Spring第一课:IOC控制反转,什么是反转,什么又是控制?

    前言 学习Spring第一课,就是认识IOC控制反转,要了解它还真得花一些功夫.今天主要理解透彻它的真谛,而不仅限于表面. 上道小菜 public class BusinessService { pr ...

  2. 复习Spring第一课--Spring的基本知识及使用

    关于Spring: spring容器是Spring的核心,该容器负责管理spring中的java组件, ApplicationContext ctx  = new ClassPathXmlApplic ...

  3. Spring第一课:基于XML装配bean(四),三种实例化方式:默认构造、静态工厂、实例工厂

    Spring中基于XML中的装配bean有三种方式: 1.默认构造 2.静态工厂 3.实例工厂 1.默认构造 在我们在Spring的xml文件中直接通过:     <bean id=" ...

  4. Spring第一天——入门与IOC

    大致内容 spring基本概念 IOC入门 [17.6.9更新],如何学习spring? 掌握用法 深入理解 不断实践 反复总结 再次深入理解与实践 一.Spring相关概念  1.概述: Sprin ...

  5. Spring第一课:依赖注入DI(二)

    DI Dependency Injection ,依赖注入 is a :是一个,继承. has a:有一个,成员变量,依赖. class B { private A a;   //B类依赖A类 } 依 ...

  6. spring第一课,beans配置(中)——自动装配

    •Spring IOC 容器可以自动装配 Bean. 需要做的仅仅是在 <bean> 的 autowire 属性里指定自动装配的模式 •byType(根据类型自动装配): 若 IOC 容器 ...

  7. Spring第一课:核心API(三)

    以上是Spring的核心部分,其中需要了解的是:BeanFactory.ApplicationContext[FileSystemXmlApplicationContext.ClassPathXmlA ...

  8. spring第一课,beans配置(上)

    1.通过property配置bean <!-- 配置一个 bean --> <bean id="helloWorld" class="com.atgui ...

  9. springMVC第一课--配置文件

    刚学springMVC,记录下学习过程,供以后查阅(githup源码). 1,新建一个web工程.(其他按常规来) 如下:添加applicationContext.xml,webmvc-servlet ...

随机推荐

  1. 一文读懂k8s rbac 权限验证

    自我认为的k8s三大难点:权限验证,覆盖网络,各种证书. 今天就说一下我所理解的权限验证rbac. 咱不说rbac0,rbac1,rbac2,rbac3.咱就说怎么控制权限就行. 一.前言 1,反正R ...

  2. 在R中使用Keras和TensorFlow构建深度学习模型

    一.以TensorFlow为后端的Keras框架安装 #首先在ubuntu16.04中运行以下代码 sudo apt-get install libcurl4-openssl-dev libssl-d ...

  3. LC-322. 零钱兑换

    322. 零钱兑换 给你一个整数数组 coins ,表示不同面额的硬币:以及一个整数 amount ,表示总金额. 计算并返回可以凑成总金额所需的 最少的硬币个数 .如果没有任何一种硬币组合能组成总金 ...

  4. Java键盘获取数据

    java录入键盘数据,整型.浮点型.布尔型.字符串. 通过导入java.util.Scanner实现各类操作 import java.util.Scanner;//导入包 public class H ...

  5. JMeter Gui – TestElement约定[转]

    转自https://www.cnblogs.com/yigui/p/7615635.html 在编写任何JMeter组件时,必须注意某些特定的约定--如果JMeter环境中正确地运行JMeter组件, ...

  6. QT从入门到入土(四)——多线程(QtConcurrent::run())

    引言 在前面对Qt多线程(QThread)做了详细的分析:QT从入门到入土(四)--多线程(QThread) - 唯有自己强大 - 博客园 (cnblogs.com) 但是最近在做项目时候,要将一个函 ...

  7. 用 Java 实现常见的 8 种内部排序算法

    一.插入类排序 插入类排序就是在一个有序的序列中,插入一个新的关键字.从而达到新的有序序列.插入排序一般有直接插入排序.折半插入排序和希尔排序. 1. 插入排序 1.1 直接插入排序 /** * 直接 ...

  8. .NetCore+Envoy+Id4+Dapr+EFCore 构建微服务之Envoy

    .NetCore比较流行的微服务应该时是用Ocelot的方式构建微服务,纯配置化,开发量也比较小.但是做过一些项目之后发现这个方式不是很适合,首先它比较笨重,其次不支持gRpc和webSocket通信 ...

  9. JQuery常用属性操作,动画,事件绑定

    jQuery 的属性操作        html() 它可以设置和获取起始标签和结束标签中的内容. 跟 dom 属性 innerHTML 一样.        text() 它可以设置和获取起始标签和 ...

  10. 关于const声明一些东西

    const int a;        int const a;        const int *a;     int *const a;    const int *const a;   前两个 ...