Spring第一课:配置文件及IOC引入(一)
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引入(一)的更多相关文章
- Spring第一课:IOC控制反转,什么是反转,什么又是控制?
前言 学习Spring第一课,就是认识IOC控制反转,要了解它还真得花一些功夫.今天主要理解透彻它的真谛,而不仅限于表面. 上道小菜 public class BusinessService { pr ...
- 复习Spring第一课--Spring的基本知识及使用
关于Spring: spring容器是Spring的核心,该容器负责管理spring中的java组件, ApplicationContext ctx = new ClassPathXmlApplic ...
- Spring第一课:基于XML装配bean(四),三种实例化方式:默认构造、静态工厂、实例工厂
Spring中基于XML中的装配bean有三种方式: 1.默认构造 2.静态工厂 3.实例工厂 1.默认构造 在我们在Spring的xml文件中直接通过: <bean id=" ...
- Spring第一天——入门与IOC
大致内容 spring基本概念 IOC入门 [17.6.9更新],如何学习spring? 掌握用法 深入理解 不断实践 反复总结 再次深入理解与实践 一.Spring相关概念 1.概述: Sprin ...
- Spring第一课:依赖注入DI(二)
DI Dependency Injection ,依赖注入 is a :是一个,继承. has a:有一个,成员变量,依赖. class B { private A a; //B类依赖A类 } 依 ...
- spring第一课,beans配置(中)——自动装配
•Spring IOC 容器可以自动装配 Bean. 需要做的仅仅是在 <bean> 的 autowire 属性里指定自动装配的模式 •byType(根据类型自动装配): 若 IOC 容器 ...
- Spring第一课:核心API(三)
以上是Spring的核心部分,其中需要了解的是:BeanFactory.ApplicationContext[FileSystemXmlApplicationContext.ClassPathXmlA ...
- spring第一课,beans配置(上)
1.通过property配置bean <!-- 配置一个 bean --> <bean id="helloWorld" class="com.atgui ...
- springMVC第一课--配置文件
刚学springMVC,记录下学习过程,供以后查阅(githup源码). 1,新建一个web工程.(其他按常规来) 如下:添加applicationContext.xml,webmvc-servlet ...
随机推荐
- 一文读懂k8s rbac 权限验证
自我认为的k8s三大难点:权限验证,覆盖网络,各种证书. 今天就说一下我所理解的权限验证rbac. 咱不说rbac0,rbac1,rbac2,rbac3.咱就说怎么控制权限就行. 一.前言 1,反正R ...
- 在R中使用Keras和TensorFlow构建深度学习模型
一.以TensorFlow为后端的Keras框架安装 #首先在ubuntu16.04中运行以下代码 sudo apt-get install libcurl4-openssl-dev libssl-d ...
- LC-322. 零钱兑换
322. 零钱兑换 给你一个整数数组 coins ,表示不同面额的硬币:以及一个整数 amount ,表示总金额. 计算并返回可以凑成总金额所需的 最少的硬币个数 .如果没有任何一种硬币组合能组成总金 ...
- Java键盘获取数据
java录入键盘数据,整型.浮点型.布尔型.字符串. 通过导入java.util.Scanner实现各类操作 import java.util.Scanner;//导入包 public class H ...
- JMeter Gui – TestElement约定[转]
转自https://www.cnblogs.com/yigui/p/7615635.html 在编写任何JMeter组件时,必须注意某些特定的约定--如果JMeter环境中正确地运行JMeter组件, ...
- QT从入门到入土(四)——多线程(QtConcurrent::run())
引言 在前面对Qt多线程(QThread)做了详细的分析:QT从入门到入土(四)--多线程(QThread) - 唯有自己强大 - 博客园 (cnblogs.com) 但是最近在做项目时候,要将一个函 ...
- 用 Java 实现常见的 8 种内部排序算法
一.插入类排序 插入类排序就是在一个有序的序列中,插入一个新的关键字.从而达到新的有序序列.插入排序一般有直接插入排序.折半插入排序和希尔排序. 1. 插入排序 1.1 直接插入排序 /** * 直接 ...
- .NetCore+Envoy+Id4+Dapr+EFCore 构建微服务之Envoy
.NetCore比较流行的微服务应该时是用Ocelot的方式构建微服务,纯配置化,开发量也比较小.但是做过一些项目之后发现这个方式不是很适合,首先它比较笨重,其次不支持gRpc和webSocket通信 ...
- JQuery常用属性操作,动画,事件绑定
jQuery 的属性操作 html() 它可以设置和获取起始标签和结束标签中的内容. 跟 dom 属性 innerHTML 一样. text() 它可以设置和获取起始标签和 ...
- 关于const声明一些东西
const int a; int const a; const int *a; int *const a; const int *const a; 前两个 ...