Spring-Day5
14.Spring使用注解开发
使用注解需要导入context约束,增加注解的支持
<?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 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="con.itheima.poko"/> //开启注解支持 <context:annotation-config> </beans>
属性如何注入?
//相当于<bean id="user" class="com.itheima.pojo.User"/> @Component public class User( public String name; //相当于<property name="none" value="myname" @Value("myname") public void setName(String name) { this.name = name; } }
Component衍生注解:在web开发中,会按照mvc三层架构分层
-
dao 【@Repository】
-
service 【@Service】
-
controller 【@Controller】
这四个注解功能是一样的,代表将某个类注册到Spring中,装配Bean
自动装配
@Autowired : 自动装配通过类型名字 -如果Autowired不能唯一自动装配上属性,则需要通过@Qualifier(value="xxx") @Nullable : 字段标记了这个注解,说明这个字段可以为null @Resource : 自动装配通过名字,类型
作用域
@Component @Scope("prototype") public class User( public String name; @Value("myname") public void setName(String name) { this.name = name; } }
15.使用JavaConfig实现配置
配置类
@ComponentScan("com.itheima.pojo") public class TestConfig{ //注册一个bean,就相当于我们之前写的一个bean标签 //这个方法的名字,就相当于bean标签中的id属性 //这个方法的返回值,就相当于bean标签中的class属性 @Bean public User user() { return new User();//就是返回要注册刀bean的对象 } }
测试类
publiclass MyTest { public static void main(String[] args) { //如果完全使用了配置类去做,我们就只能通过 AnnotationConfig 上来文来获取容器,通过配置类的class对象加载 ApplicationContext context = new AnnotationConfigApplicationContext(TestConfig.class): User getUser = (User) context.getBean("user"); System.out.println(getUser.getName()); } }