spring 包含很多项目模块 如spring framework ,spring boot 等
其中spring framework 最核心的 两个就是ioc 和 aop ,不要乱说 spring 就是ioc 和 aop。
1.做spring项目 只需要引入spring-context jar包即可,其他bean jar core jar 会自动依赖引入。
2.spring 上下文 spring 容器 spring 环境 其实都是一个意思 就是spring ioc 容器
spring 初始化上下文 有两种风格:
1.基于xml 和注解
//spring.xml 配置 bean标签
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");
2.基于java Configuration和 注解
package com.Spring;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration /*标识该类是配置类*/
@ComponentScan("com") /*扫描包*/
public class Appconfig {
}
public class StartTest {
public static void main(String[] args) {
AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(Appconfig.class);
//通过名称获取 容器 中 student对象
System.out.println(ac.getBean("student"));
//通过类型获取 容器 中 student 对象
System.out.println(ac.getBean(Student.class));
}
}
怎么理解spring ioc
spring 容器 就是 spring 各个组件 组成在一起,就是spring容器:
比如说:spring的 单利池,spring 的bean工厂,spring的扫描器(ClassPathBeanDefinitionScanner),spring的读取器,spring的后置处理器BeanPostProcessor(说后置处理器不太准确)
一:
spring编程的风格
schemal-based-------xml
annotation-based-----annotation
java-based----java Configuration
三种 可以同时使用
1.xml 风格:
好像是在spring 3 之前 context:annotation-config 必须配置
在spring 3的时候 只需 <context:component-scan base-package=“com”/> 就可以了 (这个xml配置 已经 合并了 context:annotation-config 的功能 )
spring 开启注解:
context:annotation-config</context:annotation-config>
spring 扫描注解
<context:component-scan base-package="com"/>
- annotation 注解 @Service @compent @Autowired等
但是 使用注解风格,还是 需要配置 xml
<context:component-scan base-package=“com”/>
少不掉 这个xml配置 开启扫秒 和 注解功能
3.java Configuration
@Configuration 注解表示 一个配置java类 类似于xml文件
@CompoentScan(“com”) 扫描 包 类型与 <context:component-scan base-package="com"/>
上面三种风格可以混用
如果用的是 java Configuration 风格配置 使用的是 AnnotationConfigApplicationContext 初始spring 容器或上下文,无法加载 xml配置文件,但是
可以用 @ImportResource(“Spring.xml”) 引入xml配置文件,使三种风格混用。
注解:xml 风格可以单独使用 ,注解风格要依赖于 xml 或是 java Configuration 风格才能实现 xml 用 <context:component-scan base-package=“com”/> 开启注解扫描 或者用 java Configuration @CompoentScan(“com”) 开启注解扫描