标签:public ann context loading ace 声明 classpath ram nconf
项目结构
StudentService
package com.cookie.service;
/**
* @author cxq
* @version 1.0
* @date 2020/7/14 9:18
* @desc
*/
public interface StudentService {
void add();
}
StudentServiceImpl
package com.cookie.service.impl;
import com.cookie.service.StudentService;
import org.springframework.stereotype.Component;
/**
* @author cxq
* @version 1.0
* @date 2020/7/14 9:20
* @desc
*/
public class StudentServiceImpl implements StudentService {
public void add() {
System.out.println(" add student ... ");
}
}
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"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
</beans>
以bean的方式在核心配置文件中声明
<!--
xml声明
id : bean的唯一标识
class:bean所在的Java类的全类名
-->
<bean id="studentService" class="com.cookie.service.impl.StudentServiceImpl" />
通过ClassPathXmlApplicationContext读取配置文件
/**
* 基于xml声明bean
*/
@Test
public void method1(){
// 1.获取容器:读取配置文件
ApplicationContext applicationContext
= new ClassPathXmlApplicationContext("applicationContext.xml");
// 2.获取bean
StudentService studentService = (StudentService) applicationContext.getBean("studentService");
// 3.调用对应的方法
studentService.add();
}
在核心配置文件中加入要扫描的类
<!--
2.注解扫描
base-package :类所在的包
-->
<context:component-scan base-package="com.cookie.service" />
在对应类上加上@Component将该类放入IOC容器中,并起一个别名
@Component("studentService")
public class StudentServiceImpl implements StudentService {
public void add() {
System.out.println(" add student ... ");
}
}
通过ClassPathXmlApplicationContext读取配置文件
/**
* 2.注解扫描
*
*/
@Test
public void method2(){
// 1.获取容器:读取配置文件
ApplicationContext applicationContext
= new ClassPathXmlApplicationContext("applicationContext.xml");
// 2.获取bean
StudentService studentService = (StudentService) applicationContext.getBean("studentService");
// 3.调用对应的方法
studentService.add();
}
创建一个java类CommonConfig
package com.cookie;
import com.cookie.service.StudentService;
import com.cookie.service.impl.StudentServiceImpl;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author cxq
* @version 1.0
* @date 2020/7/14 10:15
* @desc
*/
@Configuration // 声明这是一个配置类
public class CommonConfig {
@Bean // 声明bean
public StudentService studentService(){
return new StudentServiceImpl();
}
}
通过AnnotationConfigApplicationContext读取该java配置类
/**
* 3.基于java类
*
*/
@Test
public void method3(){
ApplicationContext applicationContext
= new AnnotationConfigApplicationContext(CommonConfig.class);
StudentService studentService = (StudentService) applicationContext.getBean("studentService");
studentService.add();
}
标签:public ann context loading ace 声明 classpath ram nconf
原文地址:https://www.cnblogs.com/pretttyboy/p/13298240.html