Spring MVC & Struts 2 Pros/Cons

What are the pros and cons, in your opinion, when choosing Spring over Struts 2 or Struts 2 over Spring? I am trying to determine which framework to select and the last time I used Spring was in the 1.x series and I loved it. So I am biased and I want to jump the gun and use Spring, but I want to make sure I can say why I want to use it because it seems like Struts 2 has a lot to offer as well. So I want to hear the best and the worst from both frameworks. So what do you guys think?

BlueSmurf wrote:
An application's business requirements are the basis for (1) a domain model, (2) system requirements document, (3) system architecture document, and (4) an object-oriented (technical) design.
Big Design Up Front isn't always appropriate.What I mentioned (above) could hardly be considered "Big Design Up Front". Rather, these are the "bare bones" for what is required to design enterprise software. Again, context plays a big role. Indeed. I was talking in the context of the process you outlined, not the code you posted
The business requirements for an enterprise system with thousands of users might be different than the business requirements for Jim Bob's Cardboard LLC marketing web site with no more than 30 users per month.Very true. How would that affect your decision to use Spring or Struts?
I can't think of a single business requirement that would necessitate Struts over something else.Business requirements don't mandate or dictate technical design decisions. They should, however, be used when designing a system architecture. And, yes, there may be other requirements that surface later on. This is ok and to be expected. Hence, the importance of sufficient and adequate business requirements gathering is emphasized and critical to creating a sound architectural design than meets today's requirements and can easily adapt to those that come tomorrow. Again, where does "Spring vs Struts" come into this? That decision is not an architectural one, if you have the need for Struts, Spring can be used instead. The opposite is not necessarily true, however. This all sounds very vague and "best practices say"-ish and evangelical. How do you know when your business requirements are adequate or sufficient? If you've ever actually used Spring, you should know that it lends itself extremely well to your last phrase about easily adapting to tomorrow. Dammit now I'm starting to sound evangelical!

Similar Messages

  • Spring MVC on weblogic

    Hii Frnds
    I have earlier developed struts application in weblogic 8.
    Now i intend to develop a application on Spring MVC framework, and i want to use Weblogic as my application server.
    But i am not getting any good examples to get started with.
    Can any one provide me with a link to get started.
    Can i use Weblogic 8 with springs ?

    vaneet sharma wrote:
    Hii Frnds
    I have earlier developed struts application in weblogic 8.Are you using BEA Workshop?
    Now i intend to develop a application on Spring MVC framework, and i want to use Weblogic as my application server.
    But i am not getting any good examples to get started with.
    Can any one provide me with a link to get started.Try the examples listed in the Spring download for WebLogic.
    http://commerce.bea.com/showproduct.jsp?family=SPRING&major=1.2.5&minor=0
    >
    Can i use Weblogic 8 with springs ?Generically, yes. Our download only works with 9.x.
    br

  • Pros & Cons of Using SAP PI Interfaces for Report Generation

    Hi Guru's
    I have a Scenario's like
    I have to generate a customized report in SAP with the main data's available in SAP ECC and some required data available in the Legacy System.
    I want to know the Pros & cons of using SAP PI RFC/Proxy adapter interface to get the data from the legacy system for each time the user execute the report in SAP ECC.
    Thanks in Advance

    There are couple of "dimensions" to consider in your PI interface design. For exemple when you are running the sizing exercise (Since we are considering adding a net new interface), you will need to capture specific information about new interface.i.e. S/A, adapters, frequency, avg payload size. etc..Note that the last two attributes will be hard to size properly in this case since you can't predict how frequent the end user will run the report which will impact the latency time required to pull the data. Latency will affect the user experience as visible side affect and definitely the SLA for other interfaces running at the same time.
    On the other hand, the data you are trying to retrieve from the legacy won't be used for transactional purpose but for the end user to pull KPIs from the system which can affect ECC as well. You may end up doing lot hot fixes for your report (Assuming that the report is a medium complexity code)
    There are other factors to consider but let's consider these are the major one.
    Cheers,
    F

  • How can I use firefox with pro con latte extention on a linux OS that runs via a USB?

    What linux distro to use?
    What version of firefox to use? (Since it has to be compatible with pro con latte)

    Firefox tarballs from Mozilla Org use prefs within Firefox for updates. The "toggle" for not automatically updating - '''app.update.enabled''' and where to look for updates - '''app.update.url'''. The first needs to be '''''false''''' and the second could be a '''''null''''' string, do an update can't be found.
    ''I use both prefs to keep Firefox from updating by itself. I install each new version of Firefox as it is released, and keep the older versions around for reference purposes. Those prefs are the same since Firefox 1.5 came out.''
    The versions of Firefox that are part of an operating system installation usually are that OS's own build of Firefox, and don't use the same update setup as Mozilla uses, in most cases. I am not familiar with Cent OS, but Ubuntu and Debian look for Firefox updates and from their own program repository servers outside of Firefox - as with the tarballs from Mozilla.

  • How can you get the filter off if you can't remember the password? It's"pro con" and it wont even let me check out the rates for aflight.

    How can you get the filter off if you can't remember the password? It's"pro con" and it wont even let me check out the rates for aflight.

    You can check the file prefs.js in the [http://kb.mozillazine.org/Profile_folder_-_Firefox Firefox Profile Folder] and remove the line(s) related to that extension (procon.password).

  • Is there anything available that covers the pros/cons of a simple and network PCD migration?

    Is there anything available that covers the pros/cons of a simple and network PCD migration?  

    Hi,
    as such there is no DOC but I can share my views:
    Under Pros:
    a. PCD is an application use to migrate older versions[6.1.5, 7.x , 8.x] running on MCS to VM servers.
    b.It can be used to change the IP address or hostname on new servers without affecting existing version .
    c. Many users using MCS Hardware are not willing to migrate to latest version because of existing HW not supporting interim releases which they have to hop through to get on to the target release.
    d. Further, this requires license re-hosting as well for interim releases and major downtimes as well which can be avoided by using PCD without disturbing existing setup.
    e. Also, DRAM/HDD sizing needs to be considered while doing migration on MCS.PCD addresses these issues for migration.
    Under CONS:
    a. It needs to be ordered through Product Upgrade Tool and bootable is not downloadable from Cisco site.
    b. You could face some issues while doing migration which could be bugs but can be resolved.
    c.could face issues while discovering  cluster/doing migration but can be resolved.
    regds,
    aman

  • How to use Spring MVC instead of assembler.jsp in endeca 3.1.0

    Hi ,
    I am new to Endeca . I want to use spring MVC instead of assembler.jsp .Some body please help
    me how can i do it. Wht all i have to do to achieve it.
    Thanks
    Mark

    Hi Mark,
    When using the 3.1 Assembler in your application, you can use either the jar file directly or set up the Assembler as an HTTP service and process the XML or JSON responses. Neither of these approaches conflicts with using Spring in your application.
    Sean

  • Help on getting started with Spring MVC, WebFlow; Where can it be applied ?

    I'm an individual programmer, developer and I see a huge demand (at the corporate level) for the frameworks: Spring, Spring MVC, webflow, and Hibernate. Popular today: Spring MVC, webflow, GWT.
    I've been going through the tutorials, and the technology looks awesome ! What I would like to know, is.. It's used in corporate sites, why not for smaller sites. How can I apply these frameworks in building websites ?
    I can't imaging doing any kind of serious website building without a modern CMS or Portal framework (whether in Java/php-opensource), And yes, MVC gives you the validation and authentication hooks to be used.
    The spring framework, with it's extensive scope, is a bit overwhelming, and implies that there could be a significant amount of architecture, design and planning time needed before starting implementation on a project
    All the demo's on Spring, cover some elementary, contrived example.
    If I learn these technologies (and I'm well on my way), how do I put them into practice, and in what context (no pun intented) do I use them ? I don't want to rebuild a CMS system, but I'd like to employ these frameworks effectively.

    user1944443 wrote:
    The spring framework, with it's extensive scope, is a bit overwhelming, and implies that there could be a significant amount of architecture, design and planning time needed before starting implementation on a projectYes, usually there is. Unless you're using the frameworks to build a home page for your kittens. Then you usually don't need to put that much effort into it.
    All the demo's on Spring, cover some elementary, contrived example.I'm sure you realize that they have to. There's no "follow these examples and you'll become a competent programmer" method of learning invented yet and frameworks usually need to document the basic cases extensively.
    If I learn these technologies (and I'm well on my way), how do I put them into practice, and in what context (no pun intented) do I use them ? I don't want to rebuild a CMS system, but I'd like to employ these frameworks effectively.You'll just need to come up with a project you'll be interested in finishing or at least developing for a while.
    I'm not sure whether I managed to answer your question or not, but if anything was left unclear, just ask.

  • Spring MVC Portlet in Weblogic Portal

    Is there any sample application for Spring MVC Portlet(JSR 168) in Weblogic Portal ? If so, where can I download it from ?

    you can get spring source code,then open spring samples folder,and spring portlet can transplant to weblogic portal

  • What are pros/cons of using xmarks vs. firefox sync?

    Used Firefox for a long while. Bookmarks morphed to Xmarks, which in turn has been acquired twice. I continue to use the newer Xmarks. In process of setting up a new computer, found that Firefox has it's own bookmarks sync.
    Like to keep things as simple as possible. Does Firefox sync do all that Xmarks does? What are pros/cons of using xmarks vs. firefox sync?

    I am not in a business environment, just my home. So, I don't know your specific requirements. I operate a dual G5 xserve, a dual quad-core mac pro, 6+ Apple MacOSX computers of varying types and several other linux servers plus a couple of Windows machines. If it were me, I would get two mac pro's running MacOSX Server and use one for backup of the other. The xserve RAID is too expensive from my point of view. I copy data from the xserve to several MacOSX computers with firewire drives for my backup and I have every computer on a ups. (I am assuming that they will not all fail at once!
    I run Tiger servers and would suggest that you significantly test Leopard before committing to it.
    Hope that helps.

  • Integrate Crystal Reports with Spring MVC and Hibernate

    Hi all,
    having successfully used the JRC version 11.8.4.1094 in a Java environment with:
    1)JBoss 4.2.3,
    2)Oracle 11,
    3)EJB 2,
    4)Crystal Reports 2008,
    I would like to integrate Crystal Reports into my existing spring MVC and hibernate web app using:
    1)CRJ version 12.2.209,
    2)JBoss 5.1,
    3)Oracle 11,
    4)EJB 3,
    5)Crystal Reports 2008,
    reusing code integration. I used ReportExportControl and I produced the PDF directly.
    The error occurs when returning from EJB, into Delegate, and is the following:
    09:36:23,046 WARN  [InterceptorsFactory] EJBTHREE-1246: Do not use InterceptorsFactory with a ManagedObjectAdvisor, InterceptorRegistry should be used via the bean container
    09:36:23,062 WARN  [InterceptorsFactory] EJBTHREE-1246: Do not use InterceptorsFactory with a ManagedObjectAdvisor, InterceptorRegistry should be used via the bean container
    09:38:03,062 ERROR [[dispatcher]] Servlet.service() for servlet dispatcher threw exception
    java.lang.InstantiationException: com.crystaldecisions.sdk.occa.report.exportoptions.ReportExportFormat
         at java.lang.Class.newInstance0(Class.java:340)
         at java.lang.Class.newInstance(Class.java:308)
         at org.jboss.serial.classmetamodel.ClassMetaData.newInstance(ClassMetaData.java:334)
         at org.jboss.serial.persister.RegularObjectPersister.readData(RegularObjectPersister.java:239)
         at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.readObjectDescriptionFromStreaming(ObjectDescriptorFactory.java:412)
         at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.objectFromDescription(ObjectDescriptorFactory.java:82)
         at org.jboss.serial.objectmetamodel.DataContainer$DataContainerInput.readObject(DataContainer.java:845)
         at org.jboss.serial.persister.RegularObjectPersister.readSlotWithFields(RegularObjectPersister.java:353)
         at org.jboss.serial.persister.RegularObjectPersister.defaultRead(RegularObjectPersister.java:273)
         at org.jboss.serial.persister.RegularObjectPersister.readData(RegularObjectPersister.java:241)
         at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.readObjectDescriptionFromStreaming(ObjectDescriptorFactory.java:412)
         at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.objectFromDescription(ObjectDescriptorFactory.java:82)
         at org.jboss.serial.objectmetamodel.DataContainer$DataContainerInput.readObject(DataContainer.java:845)
         at org.jboss.serial.persister.RegularObjectPersister.readSlotWithFields(RegularObjectPersister.java:353)
         at org.jboss.serial.persister.RegularObjectPersister.defaultRead(RegularObjectPersister.java:273)
         at org.jboss.serial.persister.RegularObjectPersister.readData(RegularObjectPersister.java:241)
         at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.readObjectDescriptionFromStreaming(ObjectDescriptorFactory.java:412)
         at org.jboss.serial.objectmetamodel.ObjectDescriptorFactory.objectFromDescription(ObjectDescriptorFactory.java:82)
         at org.jboss.serial.objectmetamodel.DataContainer$DataContainerInput.readObject(DataContainer.java:845)
         at org.jboss.serial.io.MarshalledObjectForLocalCalls.get(MarshalledObjectForLocalCalls.java:60)
         at org.jboss.ejb3.remoting.IsLocalInterceptor.invokeLocal(IsLocalInterceptor.java:101)
         at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:72)
         at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
         at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62)
         at $Proxy286.invoke(Unknown Source)
         at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:207)
         at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:164)
         at $Proxy284.getXXXX(Unknown Source)
         at xx.xxx.xxxxxx.spring.manager.report.ReportManagerImpl.getXXXX(ReportManagerImpl.java:26)
         at xxx.xxxx.springprova.WelcomeController.handleRequestInternal(WelcomeController.java:70)
         at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
         at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
         at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
         at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
         at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
         at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
         at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
         at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
         at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
         at java.lang.Thread.run(Thread.java:662)
    Have an idea, please?
    Thank you.

    You'll need to install the Crystal .NET that comes with VS 2005. You then install Crystal XI R2 over the top and not only will Crystal be integrated with the IDE, it should use the updated assemblies from R2.
    -Dell
    - A computer only does what you told it to, not what you thought you told it to!</p>

  • Pros / Cons of Running APEX on separate server

    Seeking feedback/thoughts on this general question.
    I am maintaining an APEX application that utilizes multiple schemas all residing in the same database as APEX. I am wondering what might be the pros / cons of putting APEX in a separate database and server.
    Would this necessarily yield security or performance benefits (or costs)?
    How many changes would need to be made in the APEX configuration and code? I have read here in the forum that at a minimum database links would need to be created to the utilized schemas on the other server, with appropriate grants. What else?
    Thanks.

    Please help us by putting your first name into your profile. Thanks.
    So what you want to do is have your application (and Application Express) access tables in a remote database. Yes, you can do that and database links are required.
    This almost always has negative performance impact and sometimes results in things not working due to database version differences, especially with down-level Oracle versions.
    It also makes application development more difficult if the Application Builder doesn't have local access to application parsing schemas. You can work around most of these problems by creating local views of remote tables, but I don't think 100% of the wizards and some SQL Workshop functionality are amenable to remote schema access. So I don't recommend it. What is your motivation to do this?
    By the way, "servers" don't matter in this discussion, it's all about databases.
    Scott

  • Pros & Cons for consuming web services in ABAP using ABAP PROXY

    Hi,
    Other then performence  is there any other disadvantages like security,etc for consuming web services in ABAP using ABAP proxy?
    I really appreciate if some one provide the more details(Pros & Cons ) regarding cosuming web services and I also want to know is there any other way to consume web services in ABAP.
    Thanks.

    <i> is there any other way to consume web services in ABAP</i>
    you can use cl_http_client class to make your program to act as http client and post the soap message too webservice. This way you dont need to generate proxy, but you should know the soap message format.
    Regards
    Raja

  • There are multiple MAC's in my house and I am considering buying Time Capsule to use as a file sharing device. Is anyone doing this? Pros/Cons?

    I have multiple MAC's in my house. I would like to create a file server environmet. I am considering using Time Capsule. Is anyone doing this? Pros/Cons?

    The Linksys should be about as fast as the Time Capsule. So you might as well connect the Time Capsule to the Linksys, disable sharing and wireless.
    Solution two is to use the TC as the router, wireless and network drive. This would save the power the Linksys needs. What is the Linksys connected to? a separate modem?

  • RAID 5 Question - separate volume for OS/Apps: pros/cons

    What are the pros & cons of having 2 volumes on a Mac Pro RAID 5 (instead of one big volume):
    Vol 1: OS & Applications
    Vol 2: Home Folders (basically everything else)
    1) Is this a good idea/bad idea?
    2) For what purposes would this setup be best used for?
    3) At what point during the RAID 5 setup do you create multiple volumes and how is it done?
    4) How/when do you set up the home directories to be on a separate volume from the OS/Apps volume and does the user have to do anything special during daily use to ensure they aren't saving/modifying anything on the OS/Apps volume?
    5) I have four 250GB Barracudas sitting around and was wondering if they will work in a RAID 5 in my Mac Pro. I haven't heard of anyone using HDDs this small in a RAID 5 and Apple's website only talks about 500GB, 750GB, and 1TB in bays 2-4. Does anyone have this setup or know if it will work?
    uryc hf bov-jna xrabov, lbh'er bhe bayl ubcr.

    What are the pros & cons of having 2 volumes on a Mac Pro RAID 5 (instead of one big volume):
    Vol 1: OS & Applications
    Vol 2: Home Folders (basically everything else)
    1) Is this a good idea/bad idea?
    Bad. Using a separate drive (especially 10,000 rpm) for OS & Applications can be useful, but two volumes on the same drive (RAID behaves as one drive) means the heads have to continual move large distances, since home folders and system files are used a lot at the same time.
    2) For what purposes would this setup be best used for?
    If you often do things that destroy your system volume, you can quickly restore it from a backup copy, without having to worry if your user backup are completely up to date, but a separate system disk would still be better.
    3) At what point during the RAID 5 setup do you create multiple volumes and how is it done?
    After you create the RAID-5 with RAID Utility, create a volume and set its size to less than the default full size. You can then create more volumes. See page 8 of the RAID Userr Guide
    <http://manuals.info.apple.com/en/RAIDUtility_UserGuide.pdf>
    4) How/when do you set up the home directories to be on a separate volume from the OS/Apps volume and does the user have to do anything special during daily use to ensure they aren't saving/modifying anything on the OS/Apps volume?
    For Tiger, use NetInfo Manager (Utilities folder). For Leopard, Right (or Control) click the user in "Accounts" system preference. Once set, the user doesn't have to do anything special.
    5) I have four 250GB Barracudas sitting around and was wondering if they will work in a RAID 5 in my Mac Pro. I haven't heard of anyone using HDDs this small in a RAID 5 and Apple's website only talks about 500GB, 750GB, and 1TB in bays 2-4. Does anyone have this setup or know if it will work?
    They should work. Apple only talks about drive sizes there were selling at the time the particular system was sold. If you have problems, though, Apple may blame the drives, and not provide much help.
    uryc hf bov-jna xrabov, lbh'er bhe bayl ubcr.

Maybe you are looking for

  • AP 1141 SSIDL not showing other ssids

    I have configured our Ap 1141 with two ssid. One is the guest ssid and the other is marked to advertise in the SSIDl IE.  I can only see the guest-mode ssid in the broadcast.  I can connect to both if I manually configure the client to connect to the

  • Need Help with a Java Question Plz

    Hi Could someone help me out with this please? I need to know the difference between the two String methods equals and equalsIgnoreCase Thanks

  • 0% idle time of cpu states from top command in oracle 8i /solaris 5.9

    Hi, for long time idle time is 0% in top command : database version:oracle 8.1.7.4.0 operating system : sun solaris 5.9 load averages: 9.32, 5.78, 6.13 15:22:13 404 processes: 387 sleeping, 13 running, 4 on cpu CPU states: 0.0% idle, 78.2% user, 21.8

  • Smarter smart objects

    I'd like to see more functionality of smart objects for instance, I have a smart object with several layers and each layer has a layer effect, when I put it in as a smart object all the layer effects don't do anything to the document its linked into.

  • What to do if I have in message monitoring

    What to do if I have in message monitoring for   messages of : "Engine": "Integration Engine" status "cancelled with error". What is (could be the error) and what steps should be done