Spring学习【五】

Spring注解

@Component、@Controller、@Service、@Repository用来标注Bean类。

@Scope标注Bean的作用域。相当于scope属性。

@Resource配置依赖注入。

@PostConstruct、@PreDestroy都用来标注方法,前者相当于init-method属性,后者相当于destory-method。

@DependsOn强制初始化其他Bean。

@Lazy延迟初始化,相当于lazy-init。

@Autowired、@Qualifier自动装配。@Autowired默认是byType的自动装配。@Qualifier可指定byName的自动装配。

在使用spring注解时,需要先对包进行扫描,扫描其中类所配置的注解


这里,程序会自动扫描spring.fws包及它的子包。

@Configuation等价于

@Bean等价于

@ComponentScan等价于

demo:

package spring.fws.repository;

import org.springframework.stereotype.Repository;

@Repository("userRepository")
public class UserRepository {
	
	public void selectById(int id)
	{
		System.out.println("根据id="+id+"获取数据");
	}
	
}
package spring.fws.service;

import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import spring.fws.repository.UserRepository;

@Service
public class UserService {
	
	@Resource(name="userRepository")
	public UserRepository userRepository;
	
	public void getUser(int id) {
		userRepository.selectById(id);
	}
	
	@PostConstruct
	public void init() {
		System.out.println("初始化方法");
	}
}
package spring.fws.action;

import javax.annotation.Resource;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import spring.fws.service.UserService;

public class Test1 {	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
		
		UserService userService = context.getBean("userService",UserService.class);
		
		userService.getUser(203);
	}
}

 

你可能感兴趣的:(Spring,Spring)