2016年11月15日
java Spring写action层,@Component是什么,@autowired是什么
MVC模式中,持久层,业务层,控制层分别用@repository,@service和@controller来标示,还有一些类,种类模糊,就使用@component来标示,也是托管给Spring框架来管理。
Spring可以自动把Bean里面引用的对象的setter/getter方法省略,会自动set/get。 使用autowired进行自动注入时,spring容器中匹配的候选bean数目必须有且仅有一个当找不到一个匹配的Bean时,spring容器会抛出BeanCreationException异常,并指出必须至少拥有一个匹配的Bean。
如果spring容器中拥有多个候选Bean,spring容器中启动时也会抛出上面那个异常,这个时候可以借助@qualifier注释指定注入Bean的名称,这样@Autowired遇到多个候选Bean的问题就解决了。
java 通过api来测试接口,用jetty起maven工程(Spring框架)的几点注意事项
1 要到src/main/webapp/web-info/web.xml文件中查看api的具体格式,免得拼错url
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/mvpmobilescene/api/*</url-pattern>
</servlet-mapping>
2 该启动好的类,该加载的东西,在监听器中填好
public class ApplicationContextAwareListner implements ApplicationContextAware {
private static Log logger = LogFactory
.getLog(ApplicationContextAwareListner.class);
public static ApplicationContext context;
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
logger.info("[setApplicationContext],applicationContext initial and system get context"
+ " by [ApplicationContextAwareListner.context]");
ApplicationContextAwareListner.context = applicationContext;
QuartzManager quartz = QuartzManager.getInstance();
quartz.intialQuartz();//此处曾经忘记填,所以中接口层中激活job时,没法获取scheduler,也没办法调用scheduleJob方法
MobileSceneManager sceneManager = MobileSceneManager.getInstance();
MobileSceneHistoryManager history =MobileSceneHistoryManager.getInstance();
}
}