maven的方式:
Apache Maven 3.8.6 的下载地址为:https://maven.apache.org/download.cgi
实操时用的是:apache-maven-3.6.3
解压后,进行如下更改:
conf 下的 settings.xml 配置文件:
以及:
然后配置环境变量:
apache-maven-3.6.3 文件目录:C:\apache-maven-3.6.3
在高级系统设置中进行环境变量的配置:
“系统变量” :
新建:MAVEN_HOME 变量值为:C:\apache-maven-3.6.3
然后:Path下,新建 %MAVEN_HOME%\bin
最后,查验是否安装成功: —— 代表成功了
然后就可以,在IDEA中,就可以新建Maven项目 :
New Project 的时候,选择maven即可。
创建完成后,自动生成如下目录结构:
(注意:ioc.xml 配置文件一定要放在 “resources” 文件夹下)
然后,创建文件即可:
代码示例:
首先就是pom依赖:
以5.2.3.RELEASE 为例
依赖文件的地址:https://mvnrepository.com/artifact/org.springframework/spring-context/5.2.3.RELEASE
注意:
在https://mvnrepository.com/ 界面搜索 “spring”,然后只需选中第一个 “Spring Context” ,
选择一个版本,然后将其中的依赖复制到IDEA中即可,其他的无需再进行同样的操作。
复制到pom.xml配置文件下的如下位置:
第一次创建依赖,会在右下角显示进度,完成后,会有:(可见,其他的依赖都已经有了)
代码示例:
Person类:
package com.zhoulz.bean;
/**
* @Auther: zhoulz
* @Description: com.zhoulz.bean
* @version: 1.0
*/
public class Person {
private int id;
private String name;
private int age;
private String gender;
public Person() {
System.out.println("person被创建了!");
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
@Override
public String toString() {
return "Person{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", gender='" + gender + '\'' +
'}';
}
}
测试类:
import com.zhoulz.bean.Person;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @Auther: zhoulz
* @Description: PACKAGE_NAME
* @version: 1.0
*/
public class MyTest {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("ioc.xml");
Person person = context.getBean("person", Person.class);
//System.out.println(person);
Person person2 = context.getBean("person",Person.class);
System.out.println(person == person2);//true
//对象在IOC容器中存储的时候都是单例的,所以上面的结果为true
//如果需要多利需要修改属性:
//即在ioc.xml配置文件中的第一行后加上:scope="prototype"
//此时再运行,则结果为false
}
}
ioc.xml配置文件:
pom.xml配置文件:
4.0.0
com.zhoulz
spring_study_maven
1.0-SNAPSHOT
org.springframework
spring-context
5.3.23
总结:
其中细节点,见上:
2、对象在spring容器中默认是在容器创建完成的时候就已经创建完成,不是需要用的时候才创
建,此种情况满足的是单例模式;
即,如果加入了 scope="prototype" —— 多例模式,
则对象在spring容器中不是默认在容器创建完成的时候就已经创建完成。
3、对象在IOC容器中存储的时候都是单例的,所以上面的结果为true,
如果需要多利需要修改属性: //即在ioc.xml配置文件中的第一行后加上:scope="prototype"
此时再运行,则结果为false;
4、创建对象给属性赋值的时候都是通过setter方式实现的,即Person类中的setter、getter方法是 不可以省略的;
5、对象的属性是由setter、getter方法决定的,而不是定义的成员属性。
举例:如果把Person中的setId()方法的方法名改为setIId,则会报错,即取决于set后面的值。
(即:根据属性值设置的时候,name的名称取决于set方法后面参数首字符小写的名称)
最后,运行时可能出现:“Error:java: 错误: 不支持发行版本 5” 的错误
原因: 是因为ideal中默认配置中有几个地方的jdk版本与实际不一致
解决方式见:https://blog.csdn.net/qq_51263533/article/details/120209830