Spring——使用注解开发
程序员文章站
2022-07-08 08:08:27
...
使用注解开发
属性的注入:
@Component:组件,放在类上,说明这个类被Spring管理了,就是bean
//@Component:组件;
//等价于<bean id="user" class="com.lyr.pojo.User"></bean>
@Component
public class User {
public String name = "张三";
}
@Value:等价于<property name="name" value="lyr"></property>
@Component
public class User {
@Value("lyr")
public String name ;
}
衍生注解:
- dao【@Repository】
- service【@Service】
- controller【@Controller】
这四个注解功能都是一样的,都是代表某个类注册到Spring中,装配bean
作用域:@Scope("prototype") //原型模式
xml与注解:
xml用来管理bean;
注解只负责完成属性的注入;
在使用注解的过程中,要开启注解的支持:
<!--指定要扫描的包,这个包下的注解就会生效--> <context:component-scan base-package="com.lyr"/> <context:annotation-config/>
完全用注解替代xml配置
实体类:
package com.lyr.pojo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
public class User {
private String name;
public String getName() {
return name;
}
@Value("lyr")//属性注入值
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
}
配置文件:
package com.lyr.config;
import com.lyr.pojo.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
//这个也会被Spring容器托管,注册到容器中,因为它本身也是一个@Component
//@Configuration代表这是一个配置类,就和之前的beans.xml一样
@Configuration
public class sConfig {
//注册一个@Bean就相当于之前写的一个bean标签
//这个方法的名字,就相当于bean标签中的id属性
//这个方法的返回值,就相当于bean标签中的class属性
@Bean
public User getUser(){
return new User(); //返回要注入bean的对象
}
}
测试类:
import com.lyr.config.sConfig;
import com.lyr.pojo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class myTest {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(sConfig.class);
User user = (User) context.getBean("getUser");
System.out.println(user.getName());
}
}
@ComponentScan("com.l yr.pojo") //扫描包
@Import(sConfig2.class) //引用配置
上一篇: P03-Python装饰器
下一篇: python之函数