找到设置(setting),一共有两个
点进去,按照图片进行 勾选/不勾选 对号
另外还要注意这个路径
要确保这个路径下面有这个settings.xml文件(文章最后有settings.xml的文件)。
点开settings.xml文件,找到这个地方(本文使用VScode打开的文件)。
如果配置过就不用添加,如果没有配置就将下面的代码粘贴进去,最后结果如图片这样即可。
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
两个设置都完成之后,后面的项目就不需要再配置了。
在pom.xml里面进行如下操作:
创建一个 dependencies 标签。
打开 Maven Repository: Search/Browse/Explore (mvnrepository.com)
搜索Spring,找到Spring-context 在里面找到5.x系列(对应jdk8),然后复制里面的Maven
org.springframework
spring-context
5.3.27
将这段代码粘贴到前面写的 dependencies 标签里面。
然后在 resources 下面创建一个 .xml 文件,注意文件名最好不要有中文。
然后将下面这段粘贴进去,刷新即可
为了保险(可能出现jar包下载一半的情况),也可以将所有的配置文件全部删除重新下载。
将设置下面的这个目录里面的文件全部删除,然后重新加载Maven
创建一个Java类
public class Student {
public Student() {
System.out.println("do student init");
}
public void sayHi() {
System.out.println("hi student");
}
}
然后在如图这里
id由自己取名,class是类的名字,如果是在某个包下面的类,用 包名.类名 的方式(多级目录,可以包名后面再 .包名)
加入bean后就可以进行取对象了
类名取(不推荐):
public static void main(String[] args) {
ApplicationContext context =
new ClassPathXmlApplicationContext("spring-config.xml");
//根据类名称获取
Student student = (Student) context.getBean("student");
student.sayHi();
}
类型取(不推荐):
public static void main(String[] args) {
ApplicationContext context =
new ClassPathXmlApplicationContext("spring-config.xml");
//根据类型获取
Student student = context.getBean(Student.class);
student.sayHi();
}
如果这个类存了多分对象,会抛异常。
类名+类型(推荐):
public static void main(String[] args) {
ApplicationContext context =
new ClassPathXmlApplicationContext("spring-config.xml");
//根据名称和类型获取
Student student = context.getBean("stu", Student.class);
student.sayHi();
}
public static void main(String[] args) {
BeanFactory factory =
new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
Student student = (Student)factory.getBean("student");
student.sayHi();
}
ApplicationContext 和 BeanFactory 都是接口类。
ApplicationContext 是 BeanFactory的子类,功能更多更全面。
ApplicationContext:
在new实例时,会将所有在Spring里面的对象都实例一份。
浪费空间,但是实例之后,后面使用的更快,效率高,类似于饿汉模式。
BeanFactory:
只有使用Spring里面的某个对象时,才会new实例。
节省空间,但是使用到才会new实例,效率低,类似于与懒汉模式。
答:不同。
如下:
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
Student student = context.getBean("student", Student.class);
Student stu = context.getBean("stu", Student.class);
//输出为false
System.out.println(student == stu);
}
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central