package com.tong.test;
import com.tong.pojo.Emp;
import com.tong.pojo.People;
import com.tong.pojo.Teacher;
import com.tong.test.Student;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.FileSystemResourceLoader;
public class SpringTest {
/*
@Test:org.junit.Test.当前类不要叫Test
访问权限修饰符:必须是public,其他访问权限修饰符不报编译错误,报运行异常。
返回值:必须是void。其他返回值类型,都报运行异常。
方法名:随意。
方法参数:必须是无参的
*/
// @Test
// private int test(String s){
// System.out.println("Hello Junit4");
// return 1;
// }
/*
@Test:org.junit.jupiter.api.Test;
访问权限修饰符:public/protected/default都可以。private后IDEA不出现运行提示了。推荐:default
返回值:应该是void。其他类型不报异常,但是没有效果。
方法名称:随意。
参数:不应该有参数。
*/
// @Test
// void test2(){
// System.out.println("Hello Jupiter");
// }
@Test
void testBeanFactory(){
// 1. 实例化DefaultListableBeanfactory。接收对象时不要用BeanFactory
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
// 2. XMLBeanDefinitionReader,把上面对象作为构造方法参数传递过来。
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(factory);
// 3. FileSystemResource ,构造方法参数Spring配置文件的绝对路径。
FileSystemResource resource = new FileSystemResource("D:\\idea\\idea2022ws\\summer\\src\\main\\resources\\applicationContext.xml");
// 4. loadBeanDefinitions()方法加载FileSystemReader对象
reader.loadBeanDefinitions(resource);
// 5. 获取容器中的Bean
People peo = factory.getBean("peo", People.class);
System.out.println(peo);
}
/*
测试通过构造方法实例化Bean
*/
@Test
void instantiationConstructor(){
// ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
ApplicationContext ac = new ClassPathXmlApplicationContext("123jqk.xml");
People peo = ac.getBean("peo", People.class);
System.out.println(ac.getResource("123jqk.xml").getClass().getName());
peo.setResourceLoader(new FileSystemResourceLoader());
System.out.println(peo);
}
/*
实例工厂方式
*/
@Test
void factory(){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
People peo2 = context.getBean("peo2", People.class);
System.out.println(peo2);
}
/*
静态工厂方式
*/
@Test
void staticFactory(){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
People peo3 = context.getBean("peo3", People.class);
System.out.println(peo3);
}
/*
DI构造注入
*/
@Test
void constructorDI(){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
People peo4 = context.getBean("peo4", People.class);
System.out.println(peo4);
}
/*
DISetter注入
*/
@Test
void setterDI(){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
People peo5 = context.getBean("peo5", People.class);
System.out.println(peo5);
}
/*
DI 混合使用方式
*/
@Test
void di(){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
People peo6 = context.getBean("peo6", People.class);
System.out.println(peo6);
}
/*
测试集合类型属性、数组类型数组、对象时的写法
*/
@Test
void type(){
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext2.xml");
Teacher teacher = ac.getBean("teacher", Teacher.class);
System.out.println(teacher);
}
/*
测试集合类型属性、数组类型数组
*/
@Test
void typeCollectionArray(){
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext2.xml");
Student stu = ac.getBean("student", Student.class);
System.out.println(stu);
}
/*
* 自动注入
*/
@Test
void autowire(){
ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext3.xml");
Emp emp = ac.getBean("emp", Emp.class);
System.out.println(emp);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Spring 是一个开源的轻量级框架,用于构建企业级 Java 应用程序。它提供了全面的基础设施支持和丰富的功能特性,旨在帮助开发人员构建灵活、可维护、高效的应用程序。Spring 框架包括多个模块,涵盖了各种不同的应用场景,如依赖注入、面向切面编程、数据访问、事务管理、Web 应用程序开发等。 以下是 Spring 框架的一些主要特点和功能: 依赖注入(DI):Spring 框架通过依赖注入机制管理组件之间的依赖关系,使得组件之间的耦合度降低,代码更易于测试和维护。 面向切面编程(AOP):Spring 提供了 AOP 支持,能够帮助开发者实现横切关注点的模块化,如日志记录、事务管理等,提高了代码的模块化程度。 事务管理:Spring 提供了强大而灵活的事务管理支持,可以通过声明式事务或编程式事务来管理数据库操作的事务性。 Spring MVC:Spring 框架提供了 Spring MVC 框架,用于构建 Web 应用程序,它基于前端控制器模式,提供了灵活的请求处理机制和视图解析,简化了 Web 应用程序的开发。 集成支持:Spring 提供了对各种其他框架和技术的集成
资源推荐
资源详情
资源评论
收起资源包目录
项目管理-spring6学习源码 (187个子文件)
SpringTest.class 4KB
ValidationTest.class 3KB
ThreadLocalTest.class 3KB
Student.class 3KB
PropertyValuesTest.class 3KB
People.class 3KB
Student.class 2KB
MyThreadScope.class 2KB
People.class 2KB
People.class 2KB
SpringValidatorTest.class 2KB
Person.class 2KB
Teacher2.class 2KB
People.class 2KB
Teacher.class 2KB
CustomScopeTest.class 2KB
ResoucesTest.class 2KB
Animate.class 2KB
People.class 2KB
Student.class 2KB
MyValidator.class 2KB
CustomScopeTest$1.class 2KB
ThreadLocalTest$4.class 1KB
ThreadLocalTest$2.class 1KB
Student.class 1KB
Teacher.class 1KB
ThreadLocalTest$1.class 1KB
SpringAnnotationTest.class 1KB
CircularTest.class 1KB
MessageSourceTest.class 1KB
People.class 1KB
SpringConfig.class 1KB
DataBinderTest.class 1KB
ResourceBundleTest.class 1KB
SingletonTest.class 1KB
ScopeTest.class 1KB
Emp.class 1KB
MethodVaidatorTest.class 1KB
ThreadLocalTest$3.class 1KB
MyThreadScope$1.class 1KB
JavaConfigTest.class 1KB
MyConverter.class 984B
ConverterTest.class 970B
AATest.class 964B
TestNGTest.class 944B
PeopleServiceImpl.class 918B
Junit4Test.class 911B
JunitJupiterTest.class 908B
MethodValidatorConfig.class 873B
SubjectWrapperImpl.class 825B
WrapperTest.class 716B
ValidationConfig.class 708B
PatternResovlerTest.class 694B
MySingleton2.class 569B
FrontendSubject.class 567B
JavaSubject.class 553B
Teacher.class 553B
PeopleStaticFactory.class 544B
Teacher.class 520B
ResourceAwareTest.class 512B
PeopleFactory.class 500B
MySingleton.class 489B
PersonDemo.class 382B
Student.class 361B
Person.class 330B
Dept.class 267B
SubjectWrapper.class 183B
Subject.class 137B
spring-beans.dtd 21KB
spring-beans.dtd 21KB
.gitignore 184B
summer.iml 197B
classpath.index 450B
classpath.index 194B
SpringTest.java 5KB
PropertyValuesTest.java 3KB
People.java 2KB
ValidationTest.java 2KB
ThreadLocalTest.java 2KB
MyThreadScope.java 2KB
ResoucesTest.java 1KB
DataBinderTest.java 1KB
MyValidator.java 1KB
Student.java 1KB
MySingleton.java 1KB
MySingleton2.java 1KB
SpringConfig.java 1003B
CustomScopeTest.java 974B
Animate.java 970B
Teacher2.java 956B
SpringValidatorTest.java 902B
SpringAnnotationTest.java 815B
ScopeTest.java 791B
CircularTest.java 784B
Person.java 730B
MethodValidatorConfig.java 702B
MessageSourceTest.java 699B
Junit4Test.java 689B
MethodVaidatorTest.java 670B
TestNGTest.java 628B
共 187 条
- 1
- 2
资源评论
童小纯
- 粉丝: 3w+
- 资源: 289
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 5uonly.apk
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
- 基于MIC+NE555光敏电阻的声光控电路Multisim仿真原理图
- 基于JSP毕业设计-基于WEB操作系统课程教学网站的设计与实现(源代码+论文).zip
- 基于LM324和LM386的音响放大器Multisim仿真+PCB电路原理图
- Python机器学习与数据挖掘环境配置与库验证
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功