Spring随堂笔记
-
作用
-
提供开发时使用的组件,使开发变简单。
-
-
核心功能
-
IOC、DI 控制反转和依赖注入。
-
AOP: 面向切面编程。
-
Spring中IOC
IOC:控制反转
-
主动控制的流程为:由应用程序主动实例化或创建程序组件,适合编写简单或小型的程序。
-
控制反转:应用程序中需要使用的组件全部放在外部容器中(Spring),在有需要的时候,
应用程序向外部容器搜索即可,适合开发大型项目。
Spring问题
-
当我们需要一个类的对象作为组件注入时,我们必须在Config类中使用
@Bean
声明一个方法,返回这个类的对象,如果需要注入很多对象,那么代码量会提升。
-
对于简单的实例化就可以返回的注入,可以试用组件扫描进行
HelloSpring练习
使用Spring实现HelloWord程序
步骤
-
创建Maven项目
-
获取Spring-Context的
jar
包<properties> <!-- 设置 JDK 版本为 1.8 --> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.source>1.8</maven.compiler.source> <!-- 设置编码为 UTF-8 --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <maven.compiler.encoding>UTF-8</maven.compiler.encoding> </properties> <dependencies> <!-- Spring Context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.2.RELEASE</version> </dependency> <dependency> <groupId>javax.annotation</groupId> <artifactId>javax.annotation-api</artifactId> <version>1.3.2</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13</version> </dependency> </dependencies>
- 创建HelloSpring类
public class HelloSpring { public void hello(){ System.out.println("Hello Spring"); } }
4. 创建Config类,这个类就是配置Spring容器中内容的类
。
-
Config类需要使用
@Configuration
来注解 -
在Config类中,使用
@Bean
来注解/* * @Configuration * 注解标记表示程序员告诉java * 这个类是配置Spring容器内容的类 */ @Configuration public class Config { /* * @Bean * 注解表示程序员告诉Java * 下面这个方法返回的对象,要放入Spring容器 */ @Bean public HelloSpring aaa(){ return new HelloSpring(); } }
-
新建一个main方法的类
(TestSpringDemo)
使用代码取出spring
public class TestSpringDemo {
public static void main(String[] args) {
//初始化Spring容器
//构造方法中指定配置信息的来源类
AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(Config.class);
/*
* 从Spring容器中获得组件(对象)
* getBean第一个参数是Config类中获得Bean的方法名
* 第二个参数是返回类型的反射
*/
HelloSpring h = ac.getBean("aaa",HelloSpring.class);
//调用HelloSpring的hello方法
h.hello();
}
}
输出结果