Spring的创建和使用

创建一个Maven项目

创建项目

Spring的创建和使用_第1张图片

 配置国内源

找到设置(setting),一共有两个

Spring的创建和使用_第2张图片

Spring的创建和使用_第3张图片

 点进去,按照图片进行 勾选/不勾选 对号

Spring的创建和使用_第4张图片

 另外还要注意这个路径

 要确保这个路径下面有这个settings.xml文件(文章最后有settings.xml的文件)。

点开settings.xml文件,找到这个地方(本文使用VScode打开的文件)。

Spring的创建和使用_第5张图片

 如果配置过就不用添加,如果没有配置就将下面的代码粘贴进去,最后结果如图片这样即可。


	alimaven
	aliyun maven
	http://maven.aliyun.com/nexus/content/groups/public/
	central        

两个设置都完成之后,后面的项目就不需要再配置了。

添加Spring依赖

在pom.xml里面进行如下操作:

创建一个 dependencies 标签。 

Spring的创建和使用_第6张图片

打开 Maven Repository: Search/Browse/Explore (mvnrepository.com) 

搜索Spring,找到Spring-context 在里面找到5.x系列(对应jdk8),然后复制里面的Maven

Spring的创建和使用_第7张图片

 Spring的创建和使用_第8张图片



    org.springframework
    spring-context
    5.3.27

将这段代码粘贴到前面写的 dependencies 标签里面。

Spring的创建和使用_第9张图片

 然后在 resources 下面创建一个 .xml 文件,注意文件名最好不要有中文。

 然后将下面这段粘贴进去,刷新即可



为了保险(可能出现jar包下载一半的情况),也可以将所有的配置文件全部删除重新下载。

将设置下面的这个目录里面的文件全部删除,然后重新加载Maven

 Spring的创建和使用_第10张图片

 Spring的使用

存对象

创建一个Java类

public class Student {
    public Student() {
        System.out.println("do student init");
    }
    public void sayHi() {
        System.out.println("hi student");
    }
}

然后在如图这里

Spring的创建和使用_第11张图片

 id由自己取名,class是类的名字,如果是在某个包下面的类,用 包名.类名 的方式(多级目录,可以包名后面再 .包名

加入bean后就可以进行取对象了

取对象

ApplicationContext(推荐)

类名取(不推荐):

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();
    }

BeanFactory(不推荐)

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 是 BeanFactory的子类,功能更多更全面。

ApplicationContext:

在new实例时,会将所有在Spring里面的对象都实例一份。

浪费空间,但是实例之后,后面使用的更快,效率高,类似于饿汉模式。

BeanFactory:

只有使用Spring里面的某个对象时,才会new实例。

节省空间,但是使用到才会new实例,效率低,类似于与懒汉模式。

在Spring里面相同的类,bean了多个对象,他们是否相同?

答:不同。

如下:

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);
    }

配置

settings.xml







  

  

  

  
  
    
  

  
  
    
  

  
  
    

    
  

  
  
   
        alimaven
        aliyun maven
        http://maven.aliyun.com/nexus/content/groups/public/
        central        
      
    
  

  
  
    

    
  

  

你可能感兴趣的:(spring,java,后端)