De facto structure or template for spring mvc - spring-mvc

I have started learning spring framework and I could get my way around it by referencing several example and templates.
But still I'm clueless how to start a spring mvc project from scratch. How would be the structure like ? If I were to choose XML based configuration or Annotation based configuration.
Any reference or suggestion would be helpful.
EDIT:
I'm using maven and trying to deploy with jetty. It would have been nice if archetype generate had a template for spring mvc.
There are some spring plugins available to generate project but still its a bit confusing because it varies between IDE.
NOTE:
spring-boot sort of frameworks are simpler. But I'm interested just plain old spring.

Download and run this example showcase of mvc features.
Run this in command line
$ cd spring-mvc-showcase
$ mvn tomcat7:run

Refer to this Spring`s Getting Started guide

Related

Is there a direct way to get a full ejb/servlet application example for glassfish

I have an application that is currently running on JBoss AS but does not work on Glassfish. I'm trying to work through the documentation here but I'm having trouble figuring out things like what the file structure of the application should be and what (if any) additional files are needed. This documentation also refers to examples but to get the examples you need to install Netbeans and access an update tool tied to the glassfish instance installed with Netbeans. When I do this the server won't start, the update tool won't run, and I can't get the examples. Is there an easy way to get these examples (e.g. a simple download)? I've found other examples such as this one, but they are also dependent upon Netbeans.
Is there a simple and complete ejb/servlet example for Glassfish that can be simply downloaded and does not depend upon Netbeans or other IDE?
The obvious example is the Java EE CargoTracker. It was written to show what a "real" application might look like with pure Java EE APIs so should work on both JBoss and GlassFish. You will need Maven installed to build and run it, but there are more complete details in the readme for the project. Note that some of the information is a little out of date (mostly links to java.net which has been sunset in favour of a GitHub site) but the application itself is still a good example of Java EE 7 APIs.
https://github.com/javaee/cargotracker
I found the examples on github here:
https://github.com/javaee/glassfish-samples
To get and build the examples you will need Git and Maven. These examples are small, complete, and concise. The example that was helpful for my particular problem was this example:
glassfish-samples\ws\javaee5\enterprise\servlet-stateless-ear
It demonstrated that I needed to change the structure of my project such that the servlet was in a .war file and not in a .jar file in the lib folder of my project.

What is symfony in the vendor folder?

When I create an app using composer, or install another app created using composer, there is a vendor/symfony folder included.
For example, I installed Laravel using composer. The folder vendor/symfony is present. I am not specifically referencing this in my Laravel app at all.
What is this folder, and it needed? Does the app use it, or composer use it? So if I am using an app created using Composer and dont use composer myself, can it safely be deleted and the app still run? Or could the app be using it?
Thanks
Answer is quite simple: Laravel uses Symfony components.
Check this article: http://www.sitepoint.com/build-php-framework-symfony-components/
Improved Routing Engine
Laravel 4.1 features a totally re-written routing layer. The API is
the same; however, registering routes is a full 100% faster compared
to 4.0. The entire engine has been greatly simplified, and the
dependency on Symfony Routing has been minimized to the compiling of
route expressions.
http://laravel.com/docs/master/releases
The "vendor" folder is a standard in every application / framework that uses composer to manage dependencies. In the "vendor" folder you will find all dependencies (read: libraries) that your applicatication requires.
But you will also find all libraries that your libraries require. In order to minimize code duplication, and thanks to the composer system, most open source projects now reuse parts from other open source projects.
BTW, this is great.
Symfony components are excellent and well documented, so they are currently used by many other frameworks and applications.
Inside the "vendor" you may find other libraries that you did not specifically require yourself, but as long as your correctly use composer, that's not something you should worry about.

Can I create my own template to scaffold my own WebAPI controller when using WebAPI 2 and VS 2013 RC Update 2?

I tried to use the scaffolding but there are so many changes I need to make for it to meet my needs. Is there some way I can make my own template so I can scaffold my own controller automatically.
Please note I just updated to the latest release of VS2013 RC Update 2. Not sure if there is any new functionality in that which would help me.
thanks,
There are two ways that customs scaffolders are supported:
Write a new scaffolder as a VSIX extension. This will be available for any project on your machine, but does require installing the VSIX to share. A sample walkthough is provided here
Customize the scaffolding T4 templates for your project. This will be available only in the project where you do it, but should not require any further custom installation once it's there (note: setting it is simplified by having the SideWaffle extension installed). A sample walkthrough can be found here
Never done it before, but this may help http://blogs.msdn.com/b/webdev/archive/2014/04/03/creating-a-custom-scaffolder-for-visual-studio.aspx

How to / where to find info on JBoss client dependencies? Any documentation?

It may be pretty basic question. But no luck Googling.
I was going through this URL. Because I had an issue accessing EJBs deployed on JBoss. After following this, it worked. Mainly this line.
jboss-ejb3-client.jar, jboss-aop-jdk50-client.jar, jboss-aspect-jdk50-client.jar and jbossall-client.jar -
all these .jar files are found in client folder of JBoss installation directory
But for a newbie of EJBs like me, this is following the steps without understanding the dependencies. So my question, can we find documentation like this somewhere? How do we know the jars we need to copy to client application classpath?
jbossall-client.jar for JBoss 4.X is enough - it contains all needed libraries.
For JBoss 5.X the story is more difficult - you need to reference in your project only jbossall-client.jar, but inside this JAR there are no actual classes, only MANIFEST file, which lists needed dependencies.
So, on JBoss 5, you need to have jbossall-client.jar added to classpath of your client plus all listed JARs lying next to it. Crazy, isnt't it?
JBoss 7 has sane approach. There is bin\client\jboss-client.jar that contains all dependencies needed by clients.

Weld archetype vs Seam Forge

I'm building a new project using Seam 3. I don't understand what the difference is between Weld archetype and Seam Forge. Both of them help us to build a simple project template to start with.
Seam Forge is a tool similar to seam-gen from Seam 2.
Seam Forge is a console where you can setup and generate your project, you can choose a version of libraries, JPA implementation etc
you can create classes, add fields to them, create CRUD and many more
weld archetype is a 'simple application' (configuration) with pom, configuration files and example classes ready to develop your application
I think Seam Forge is stronger tool and have many features helping rapidly develop your application.
In the long run, Forge will be useful for incremental enhancement of your project using extra plugins, like so: https://docs.jboss.org/author/display/FORGE/Installing+new+Plugins
This basically lets you extend your project with anything that can be imagined!

Resources