文件配置:
<?xml version="1.0" encoding="UTF-8"?>
<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.lms.pojo"/>
<context:annotation-config/>
</beans>
注意设置需要扫描的包,此包下可以使用注解开发
注意开启注解支持
@Component
@Component
public class User {
public String name = "1";
}
此注解和在xml注册Bean效果相同
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
User person = context.getBean("user", User.class);
System.out.println(person.name);
}
注意取Bean用的name需要是类的全小写名称
@Value
@Component
public class User {
@Value("1")
public String name;
}
用注解注入值
衍生注解
在MVC三层开发中,@Component注解对应不同层有不同注解:
dao层:@Repository
service层:@Service
controller层:@Controller
以上四个注解功能相同,都是将类注册到Spring中
作用域
@Scope用于标记单例、原型模式
@Component
@Scope("singleton")
public class User {
public String name;
}
JavaConfig配置
配置类:
@Configuration
public class MyConfig {
@Bean
public User getUser() {
return new User();
}
}
用@Bean注解用于注册于Spring,用了@Configuration注解后,可以将该类看作等同于之前xml配置文件,在类中用注解进行配置。
测试:
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
User user = context.getBean("getUser", User.class);
System.out.println(user.getName());
}