Spring入门

一、Spring介绍

官网:https://spring.io/

作用:项目管理(Object, Controller, Service, DAO)

设计模式:工厂模式

二、Spring工程搭建

1.创建demo项目:

mvn archetype:generate

2.添加依赖:

<dependencies>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
    <version>5.2.7.RELEASE</version>
  </dependency>
</dependencies>

包括beans, core, context, expression等

3.创建接口demo.dao.UserDAO.java:

package demo.dao;

public interface UserDAO {
    public void insertUser();
}

4.创建实现类demo.dao.UserDAOImpl.java:

package demo.dao;

public class UserDAOImpl implements UserDAO {
    public void insertUser() {
        System.out.println("insert user...");
    }
}

5.添加资源文件resources/applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="userDAO" class="demo.dao.UserDAOImpl"></bean>
</beans>

6.编写main方法:

package demo;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.ConfigurableApplicationContext;

import demo.dao.UserDAO;

public class App 
{
    public static void main( String[] args )
    {
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserDAO userDAO = context.getBean("userDAO", UserDAO.class);
        userDAO.insertUser();
        ((ConfigurableApplicationContext)context).close();
    }
}

基本的demo就完成了。

可能有人会觉得奇怪,“你做了这么多工作,其结果不就是new了一个UserDAO对象嘛”,在这里,spring这么做是为了解决项目中的强耦合问题。

例如,增加一个UserDAOImpl2的实现,对应的bean的创建完全由spring来完成,其他对UserDAO引用的类无需做任何修改,这就是设计模式中的开闭原则:“对扩展开放,对修改关闭”。

补充:解决The compiler compliance specified is 1.5 but a JRE 1.8 is used警告问题,在pom.xml中添加:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.8.1</version>
      <configuration>
        <source>1.8</source>
        <target>1.8</target>
      </configuration>
    </plugin>
  </plugins>
</build>
原文地址:https://www.cnblogs.com/viewts/p/13178873.html