我们在开发中,常常在类上加@Component、@Repository、@Service、@Controller 注解来定义bean,这个时候spring会自动生成bean,如果不主动定义bean的name那么,那么默认以类名称的的首字母小写作为bean的name,当类的名字是以两个或以上的大写字母开头的话,bean的name会与类名保持一致同时默认bean的id属性=name属性。
例:
1、
@Service
public class SysCustomerServiceImpl extends AbstractService implements SysCustomerService {
@Autowired
private SysCustomerMapper sysCustomerMapper;
}
上边会自动生成一个name为sysCustomerServiceImpl的bean
等同于以前xml配置法在applicationContext.xml中配置:
<bean name="sysCustomerServiceImpl" class="com.sinosig.sl.slts.soa.impl.SysCustomerServiceImpl"></bean>
2、
@Service
public class SYsCustomerServiceImpl extends AbstractService implements SysCustomerService {
@Autowired
private SysCustomerMapper sysCustomerMapper;
}
上边会自动生成一个name为SYsCustomerServiceImpl的bean
等同于以前xml配置法在applicationContext.xml中配置:
<bean name="SYsCustomerServiceImpl" class="com.sinosig.sl.slts.soa.impl.SYsCustomerServiceImpl"></bean>
3、
当然我们也可以指定生成bean的name属性
例:
@Service("sysCustomerServiceImpl")
public class SYsCustomerServiceImpl extends AbstractService implements SysCustomerService {
@Autowired
private SysCustomerMapper sysCustomerMapper;
}
此时会自动生成一个name属性为sysCustomerServiceImpl的bean
等同于以前xml配置法在applicationContext.xml中配置:
<bean name="sysCustomerServiceImpl" class="com.sinosig.sl.slts.soa.impl.SYsCustomerServiceImpl"></bean>