仓酷云

标题: 了解下JAVA的怎样利用spring的autowire为servlet注进Bean [打印本页]

作者: 乐观    时间: 2015-1-18 11:21
标题: 了解下JAVA的怎样利用spring的autowire为servlet注进Bean
如果你学习的是市场营销,是销售,也许参加大课堂的学习会更合适,因为你的工作能力中有个基础就是搭建自己的人脉,
在使用中一样平常一般的JavaPojo都是由Spring来办理的,以是利用autowire注解来举行注进不会发生成绩,可是有两个工具是破例的,一个是Filter,一个是Servlet,这两样工具都是由Servlet容器来保护办理的,以是假如想和其他的Bean一样利用Autowire来注进的话,是必要做一些分外的工夫的。
关于Filter,Spring供应了DelegatingFilterProxy,以是本文次要报告Servlet的办理。
1、对照直不雅可是不年夜文雅的做法是重写init()办法,在内里利用AutowireCapableBeanFactory来手工告知Spring:我这个Servlet是必要如许的一个Bean的。详细写法:
public void init(ServletConfig servletConfig) throws ServletException {
    ServletContext servletContext = servletConfig.getServletContext();
    WebApplicationContext webApplicationContext = WebApplicationContextUtils.getWebApplicationContext(servletContext);
    AutowireCapableBeanFactory autowireCapableBeanFactory = webApplicationContext.getAutowireCapableBeanFactory();
    autowireCapableBeanFactory.configureBean(this, BEAN_NAME);
}
个中,BEAN_NAME就是必要注进的Bean在spring中注册的名字.
如许写的次要成绩是就是谁人BEAN_NAME,如许写有点自动查找,而不是依附注进的感到。
2、创立一个相似于DelegatingFilterProxy那样的代办署理,经由过程代办署理依据设置来找到实践的Servlet,完成营业逻辑功效。
假定我们有一个Servlet名字叫UserServlet,必要注进一个UserManager,伪代码以下:
public class UserServlet extends HttpServlet {
    @Autowired(required = true)
    private UserManager userManager;
}
第一步:
public class DelegatingServletProxy extends GenericServlet {
    private String targetBean;
    private Servlet proxy;
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        proxy.service(req, res);
    }
    @Override
    public void init() throws ServletException {
        this.targetBean = getServletName();
        getServletBean();
        proxy.init(getServletConfig());
    }
    private void getServletBean() {
        WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());
        this.proxy = (Servlet) wac.getBean(targetBean);
    }
}
第二步:
设置web.xml文件,本来UserServlet的设置大抵是如许的:
<servlet>
        <servlet-name>userServlet</servlet-name>
        <servlet-class>com.sample.UserServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>userServlet</servlet-name>
        <url-pattern>/userServlet</url-pattern>
    </servlet-mapping>
如今修正为
<servlet>
        <servlet-name>userServlet</servlet-name>
        <servlet-class>com.sample.DelegatingServletProxy</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>userServlet</servlet-name>
        <url-pattern>/userServlet</url-pattern>
    </servlet-mapping>
注重,spring是依据Servlet的名字来查找被代办署理的Servlet的,以是,起首我们要在UserServlet类后面加上@Component,来告知Srping:我也是一个Bean。假如称号和Web.xml内里界说的纷歧样的话,能够在这里指定Bean的名字,好比:@Component("userServlet")

ruby里有这些工具吗?又要简单多少?我没有用过这两门语言,我估计在这些语言力没有很统一的这种标准,或者根本就没有提供。
作者: 小女巫    时间: 2015-1-18 19:56
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
作者: 若天明    时间: 2015-1-23 07:57
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
作者: 飘飘悠悠    时间: 2015-1-24 16:42
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
作者: 第二个灵魂    时间: 2015-1-24 22:24
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
作者: 飘灵儿    时间: 2015-1-31 15:42
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
作者: 小妖女    时间: 2015-2-1 17:23
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
作者: 深爱那片海    时间: 2015-2-4 21:41
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者: 老尸    时间: 2015-2-6 09:40
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
作者: 小魔女    时间: 2015-2-6 16:55
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
作者: 金色的骷髅    时间: 2015-2-6 20:05
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
作者: 透明    时间: 2015-2-7 11:36
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者: 冷月葬花魂    时间: 2015-2-10 07:35
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
作者: 爱飞    时间: 2015-2-28 04:24
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
作者: 柔情似水    时间: 2015-3-6 23:42
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
作者: 若相依    时间: 2015-3-8 13:14
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者: admin    时间: 2015-3-13 06:07
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
作者: 再见西城    时间: 2015-3-20 14:06
是一种突破用户端机器环境和CPU




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2