1. 注解
- 注解是代码特殊标记,格式: @注解名称(属性名称=属性值,属性名称=属性值…)o
- 使用注解,注解作用在类上面,方法上面,属性上面。
- 使用注解目的:简化xml配置。
2. 基本使用
-
context名称空间引入
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
-
扫描包中所有注解
<context:component-scan base-package="com.yang"/>
只扫描某个注解
<context:component-scan base-package="com.yang" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Component"/> </context:component-scan>
不扫描某个注解
<context:component-scan base-package="com.yang"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Component"/> </context:component-scan>
-
对应类上添加以上四个注解之一即可
@Component public class User { private String id; private String userName; private Integer gender; private List<String> courses; private Set<String> friends; private Map<String, String> grades; }
3. 创建对象注解
- @Component
- @Service
- @Controllers
- @Repository
上面四个注解功能是一样的,都可以用来创建bean实例。
4. 属性注入注解
- @Autowired:根据属性类型进行注入
- @Qualifier:根据属性名称进行注入
- @Resource(java自带注解):可以根据属性和名称进行注入
- @Value:注入普通属性
@Repository(value = "UserDaoImpl1")
public class UserDaoImpl implements UserDao {
public User getUser(){
User user = new User();
user.setId("1");
user.setUserName("yang");
user.setGender(1);
return user;
}
}
@Service
public class UserService {
@Autowired
@Qualifier(value = "UserDaoImpl1")
private UserDao userDao;
public User getUser(){
User user = userDao.getUser();
return user;
}
}
5. 配置类
-
配置类
@Configuration @ComponentScan(basePackages = "com.yang") public class SpringConfig { }
-
test
@Test public void springConfigTest(){ ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfig.class); UserService userService = applicationContext.getBean("userService", UserService.class); User user = userService.getUser(); System.out.println(user); }