1.配置pom文件
- 指定版本
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target><mybatis.version>3.5.6</mybatis.version><spring.version>5.2.9.RELEASE</spring.version></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.快速入门
- 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
@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具体的实现类,通过下面的配置完成注入
- beans.xml配置注入
```xml
<?xml version=”1.0” encoding=”UTF-8”?>
- 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.包扫描
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注解
- 在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在属性上会从容器中赋值给这个属性
