Spring——IOC
2020-12-13 14:40
标签:java class mvc 自动扫描 image 视图 repos 现在 报错 声明:本博客仅仅是一个初学者的学习记录、心得总结,其中肯定有许多错误,不具有参考价值,欢迎大佬指正,谢谢!想和我交流、一起学习、一起进步的朋友可以加我微信Liu__66666666 这是简单学习一遍之后的记录,后期还会修改。 ? “Bean”本意为”豆子“,豆子本身就是种子,种豆得豆;而在java中,“类”又叫“javaBean”,就相当于种子,我们可以通过类来创建对象,例如有个Apple类,那我们就可以通过这个类来获得Apple实例对象。 ? 我们都知道Spring是通过容器来管理Bean的,其实容器中内容的基本单位就是bean,Spring中有很多个bean,每个bean对应一个javaBean。 ? 我们如果想种苹果的话,需要自己亲手种,这样很麻烦。那怎么办呢?现在有家店,你给他苹果种子,他就可以帮你种树,并将成熟的苹果交给你;而Spring就相当于这家店,你把JavaBean给他,他就把Bean放在容器里培养,当你需要一个实例对象的时候,他就会给你,就完全省去了我们手动创建对象的过程。 控制反转配置方式 一个基于XML配置的控制反转Demo 创建一个项目(建议通过Maven/Gradle来管理项目,本文使用Maven) 导入jar包:通过Maven/Gradle等自动导入或手动下载导入 在java或resources目录下创建applicationContext.xml文件,它是Spring 的核心配置文件。 在src/main/java/ioc下创建Apple.java类 在applicationContext.xml中将Apple这个类添加到Spring容器中 bean标签里的id属性,是每个bean的唯一标识,我们可以在java代码中通过这个id获取到该bean对应的实例对象;class属性是该类的全限定名。 编写测试类 输出结果: OK,是我们预期的结果。经过一顿操作是不是觉得Spring好像也很麻烦?但是Spring不这样用,这只是个demo,实际用起来会非常方便简洁。 一个基于注解的控制反转Demo 创建项目(建议通过Maven/Gradle来管理项目,本文使用Maven) 导入jar包,见上文“一个基于XML配置的控制反转Demo” 创建applicationContext.xml和Apple类(同上) 为Apple类添加注解(就不用配bean标签了) ? id默认为类名的首字母小写形式,例如Apple的id为apple,AppleService的id为appleService 也可使用value属性指定: ? 注解写在类声明的上方,注解有@Component、@Controller、@Service、@Repository,这四个注解的作用完全相同,设计四个主要为了区分不同的层,例如@Controller是用于视图控制层、@Service用于服务层、@Repository用于持久层。当然,如果在持久层用@Controller也不会报错,但是不建议这样写。 在applicationContext.xml开启注解并配置包扫描 开启注解: 配置包扫描(就是设置一下让Spring帮我们自动扫描哪些包,例如设置了名为ioc的这个包,那ioc这个包下所有添加了@Component/@Controller/@Service/@Repository注解的JavaBean都会被自动添加到Spring 的容器中) bese-package这个属性可以配置多个包,以半角逗号分隔,例如base-package=“ioc,mvc” 编写测试类 输出结果: OK,结果还是符合预期。 总结 Spring——IOC 标签:java class mvc 自动扫描 image 视图 repos 现在 报错 原文地址:https://www.cnblogs.com/liuhongchen/p/11567095.html
一、Bean
二、控制反转(IoC)
package ioc;
public class Apple {
private Integer id;
private String color;
public Apple() {
}
// 此处略去所有getter、setter方法
//此处略去toString方法
}
public class AppleTest {
//考虑到部分朋友没接触过Junit所以这里就这样简单测试下
public static void main(String[] args) {
//这里获取的是applicationContext.xml这个配置文件的对象
//通过它可以获取配置文件中配置的bean对象
ApplicationContext context=
new ClassPathXmlApplicationContext("applicationContext.xml");
//调用ApplicationContext的getBean(String id,Class
Apple{id=1, color=‘green‘}
@Component
public class Apple {}
@Component(value = "apple")
public class AppleTest {
public static void main(String[] args) {
ApplicationContext context=
new ClassPathXmlApplicationContext("applicationContext.xml");
Apple apple = context.getBean("apple", Apple.class);
apple.setId(1);
apple.setColor("green");
System.out.println(apple);
}
}
Apple{id=1, color=‘green‘}
下一篇:用C#写入Excel表