Spring的一些常用注解(三)

一,Spring中 xml 常用配置

1,声明一个对象:<bean id="user" class="com.sxt.domain.User">

2,导入一个xml的配置:<import resource="classpath:application-dao.xml"/>

3,扫描: <context:component-scan base-package="com.sxt.service.impl"></context:component-scan>

二,替换bean的一些注解 

@Controller

@Service

@Compoment

@Repository

@Bean

三,Spring中一些注解说明

1@Configuration作用于类上,相当于一个xml配置文件(相当于spring中的applicationContext.xml

2@Bean作用于方法上,相当于xml配置中的<bean>(相当于<bean id="", class=""></bean>)

例子:创建一个Myconfig类,User类

MyConfig.java

@Configuration
public class MyConfig {
	@Bean("user")
	public User getUser() {
		return new User(1,"张三");
	}
	@Bean("user2")
	public User getUser2() {
		return new User(2,"李四");
	}
}

User.java 

public class User {
	private Integer uid;
	private String username;
	public Integer getUid() {
		return uid;
	}
	public void setUid(Integer uid) {
		this.uid = uid;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public User(Integer uid, String username) {
		this.uid = uid;
		this.username = username;
	}
	@Override
	public String toString() {
		return "User [uid=" + uid + ", username=" + username + "]";
	}
}

导入User测试,没有建xml文件是否能获取User对象

@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
	@Autowired
	User user;
	@Autowired
	User user2;
	@Test
	public void contextLoads() {
		System.out.println(user);
		System.out.println(user2);
	}
}

 结果:可以。

3、(1)@Import注解 用于将指定的类实例注入之Spring IOC Container中。(2)@Import注解 在创建配置文件之后可以引入其它的配置文件,当于合并配置文件。

例子(1):

public class Per1 {
	public Per1() {
		System.out.println("我被创建了·per1");
	}
}

 

@Configuration
@Import(value = {Per1.class})
public class MyConfig3 {
}
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
	@Autowired
	Per1 p1;
	@Test
	public void contextLoads() {
		System.out.println(p1);
	}
}

 结果:

例子(2)

当自己创建的配置文件不和启动同包下时,可以使用@Import导入配置类。MyConfig10,MyConfig11和启动类不同包

@Import(value = {MyConfig10.class,MyConfig11.class})
public class DemoApplication {
	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
}

 

4@ComponentScan(value= {"om.wachs.service","com.wachs.dao","..."})配置扫描

当自己创建的配置文件不和启动同包下时,可以使用@ComponentScan 导入配置类。

5@Qualifier注解了,qualifier的意思是合格者,通过这个标示,表明了哪个实现类才是我们所需要的,我们修改调用代码,添加@Qualifier注解,需要注意的是@Qualifier的参数名称必须为我们之前定义@Bean注解的名称之一。


@Document//说明该注解将被包含在javadoc中
@Inherited//说明子类可以继承父类中的该注解

@Target:注解的作用目标     

  • @Target(ElementType.TYPE)//接口、类、枚举
  • @Target(ElementType.FIELD)//字段、枚举的常量
  • @Target(ElementType.METHOD)//方法
  • @Target(ElementType.PARAMETER) //方法参数
  • @Target(ElementType.CONSTRUCTOR) //构造函数
  • @Target(ElementType.LOCAL_VARIABLE)//局部变量
  • @Target(ElementType.ANNOTATION_TYPE)//注解
  • @Target(ElementType.PACKAGE)///包

 

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值