1.配置pom文件

    • 指定版本
      1. <properties>
      2. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      3. <maven.compiler.source>1.7</maven.compiler.source>
      4. <maven.compiler.target>1.7</maven.compiler.target>
      5. <mybatis.version>3.5.6</mybatis.version>
      6. <spring.version>5.2.9.RELEASE</spring.version>
      7. </properties>
    • 导入依赖
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>${spring.version}</version>
        </dependency>
         <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context-support</artifactId>
          <version>${spring.version}</version>
        </dependency>
      

    2.快速入门

    1. dao的实现类其中一个UserDaoImpl ```java package com.jie.ssm.dao.impl;

    import com.jie.ssm.dao.UserDao; import com.jie.ssm.entity.User;

    import java.util.List;

    public class UserDaoImpl implements UserDao { @Override public List selectUsers() { System.out.println(“UserDaoImpl”); return null; }

    @Override
    public User selectByUsername(String username) {
        return null;
    }
    
    @Override
    public int insert(User user) {
        return 0;
    }
    
    @Override
    public void update(User user) {
    
    }
    
    @Override
    public int delete(int id) {
        return 0;
    }
    

    }

    
    
    2. 
    service的实现类
    ```java
    package com.jie.ssm.service.impl;
    
    
    import com.jie.ssm.dao.UserDao;
    import com.jie.ssm.entity.User;
    import com.jie.ssm.service.UserService;
    
    import java.util.List;
    
    public class UserServiceImpl implements UserService {
        private UserDao userDao;
    
        @Override
        public List<User> getAll() {
            return userDao.selectUsers();
        }
    
        public void setUserDao(UserDao userDao) {
            this.userDao = userDao;
        }
    }
    
    • 不需要给userDao具体的实现类,通过下面的配置完成注入
      1. beans.xml配置注入 ```xml <?xml version=”1.0” encoding=”UTF-8”?>
    <bean id="userDao" class="com.jie.ssm.dao.impl.UserDaoImpl"/>
    
    <bean id="userService" class="com.jie.ssm.service.impl.UserServiceImpl">
        <property name="userDao" ref="userDao"/>
    </bean>
    

    
    
       - 使userServiceImpl依赖于UserDaoImpl
    4. 
    测试类
    ```java
    package com.jie.ssm.service;
    
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class UserServiceTest {
    
        @Test
        public void test(){
    
            ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
    
            UserService userService = context.getBean(UserService.class);
    
            userService.getAll();
        }
    }
    
    • 只需要改变beans.xml中配置可以将service实现类中的UserDao的实现改变

    3.包扫描

    1. beans.xml ```xml <?xml version=”1.0” encoding=”UTF-8”?>

    
    <br />通过包路径进行扫描,如果扫描到有注解的,会将该类放到容器中
    
    2. 
    在dao层实现类上注解[@Repository ](/Repository ) 
    ```java
    package com.jie.ssm.dao.impl;
    
    import com.jie.ssm.dao.UserDao;
    import com.jie.ssm.entity.User;
    import org.springframework.stereotype.Repository;
    
    import java.util.List;
    @Repository
    public class UserDaoImpl implements UserDao {
        @Override
        public List<User> selectUsers() {
            System.out.println("UserDaoImpl");
            return null;
        }
    
        @Override
        public User selectByUsername(String username) {
            return null;
        }
    
        @Override
        public int insert(User user) {
            return 0;
        }
    
        @Override
        public void update(User user) {
    
        }
    
        @Override
        public int delete(int id) {
            return 0;
        }
    }
    


    若有多个@Repository注解同一个接口的不同实现类会报异常,因为不唯一,可以在某一个实现类的@Repository上再添加一个@Primary注解

    1. 在service实现类上添加注解@Service ```java package com.jie.ssm.service.impl;

    import com.jie.ssm.dao.UserDao; import com.jie.ssm.entity.User; import com.jie.ssm.service.UserService; import org.springframework.stereotype.Service;

    import java.util.List;

    @Service public class UserServiceImpl implements UserService { @Autowired private UserDao userDao;

    @Override
    public List<User> getAll() {
        return userDao.selectUsers();
    }
    
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }
    

    } ```

    • 控制层@Controller,角色不明确用@Component
    • @Autowired在属性上会从容器中赋值给这个属性