@Component @Service @Controller @Repository

来源:互联网 发布:淘宝客服上下班时间 编辑:程序博客网 时间:2024/06/08 10:40
<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd"><context:component-scan base-package="com.sl"/></beans>

自动找com.sl包下的组件

 

@Repository("dao2")public class StudentDao {private int id;public int getId() {return id;}public void setId(int id) {this.id = id;}public void save(User u){System.out.println("save "+u.getName()+" success!");}@Overridepublic String toString() {// TODO Auto-generated method stubreturn "id="+id;}}


 

@Service("S_service")public class StudentService {private StudentDao dao;public StudentDao getDao() {return dao;}@Resource(name="dao2")public void setDao(StudentDao dao) {this.dao = dao;}public void add(User u){dao.save(u);}}


 

public class test {@Testpublic void testOne(){ApplicationContext appl=new ClassPathXmlApplicationContext("beans.xml");StudentService service=(StudentService)appl.getBean("S_service");service.add(new User("1"));}}

 

@Component @Service @Controller @Repository标示的类都被看成组件

类里要有无参构造

@Controller:类似action层

@Service:service层

@Repository:dao层

其实全部写@Component就行

 

a)    初始化的名字默认为类名首字母小写

b)    可以指定初始化bean的名字

 

 

另外可以这样指定scope既生命周期

@Service("S_service")@Scope("prototype")public class StudentService {private StudentDao dao;public StudentDao getDao() {return dao;}@Resource(name="dao2")public void setDao(StudentDao dao) {this.dao = dao;}public void add(User u){dao.save(u);}}


 

 还可以指定初始化时和关闭时调用的方法,

 直接在方法上面写

public class CachingMovieLister { 
  @PostConstruct  public void populateMovieCache() {      // populates the movie cache upon initialization...  }  
  @PreDestroy  public void clearMovieCache() {      // clears the movie cache upon destruction...  }}


 


 

原创粉丝点击