Lots of my students and juniors keep telling me that, setting up a “Spring” development environment is a big hassle. There are many tutorials are available in the web but they are not comfortable with those. May be the tools we are using are slightly different with them or it is just a time consuming for the initial setting up. That is why I choose to write a post them to start a spring project from scratch, hopefully it will help others too. I am using “IntelliJ IDEA” ultimate IDE (as usual) and maven for build automation tool. I will deploy it on JBoss server (similar on Apache Tomcat or Oracle WebLogic).
You will find lots of good tutorials on downloading and setting up IDE (Idea) and web-server (JBoss) and the basic knowledge on Spring MVC, so I am omitting those things (if you don’t find it on Google, make a comments on the below comment section).
Please follow steps by steps –
1) Go to New Project -> Maven , don’t select archetype and press Next
2) Write GroupId, ArtifactId, Version like this.
groupId will identify your project uniquely across all projects, so we need to enforce a naming schema. It has to follow the package name rules, what means that has to be at least as a domain name you control, and you can create as many subgroups as you want. Example- com.roni
artifactId is the name of the jar without version. If you created it then you can choose whatever name you want with lowercase letters and no strange symbols. If it's a third party jar you have to take the name of the jar as it's distributed. Example- springtest
version if you distribute it then you can choose any typical version with numbers and dots (1.0, 1.1, 1.0.1, ...). In this example, we will keep the default- 1.0-SNAPSHOT
3) Press Next then write the Project Name and select the project location, then click Finish
4) Open the maven pom.xml file (if not opened yet automatically) and add the following lines inside the project tag.-
You can choose enable auto import option or you have to click import changes whenever you have made any change on the pom.xml
5) Create webapp and WEB-INF directory in the main folder as shown below –
6) Create web.xml file in WEB-INF and write the following lines-
<?xmlversion="1.0"encoding="ISO-8859-1" ?><web-appid="WebApp_ID"version="2.4"xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><display-name>Spring Test Application</display-name><description>
This is a simple spring mvc app
</description><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/dispatcher-servlet.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcher</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>
7) Now create dispatcher-servlet.xml file on WEB-INF directory and add the following lines on it
10) Now if you click Run from Run menu for the first time, you will be prompt to Edit Configuration. If you click, following menu will appear –
11) Click the top most left + sing, then scroll down and you will see the JBoss Server. Select the local, If you have already configured the JBoss server it will appear in the application server dropdown list, if not then click Configure and it will require to show the JBoss home directory. I have downloaded the jboss-eap-7.1.0 and unzip it and showed the path ( jboss-eap-7.1.0\jboss-eap-7.1 ) as a home directory.
12) Then go to Deployment , click the right most + sign and add springtest.war artifacts like below -
13) Now click Run, hopefully you will be able to see the output like below –
Enjoy!!! I hope that it will save your time. On the upcoming post, I will do REST web service and spring data within 5 minutes setting up time.
I’m a diehard fan of intellij idea. I also developed few android
apps on idea. Just missing the UI drag and drop option but it will come in the
version 12. Already preview option is
available from version 11. There are some projects on going in my office and I
have to use eclipse, so I have to know the shortcut of eclipse. But suddenly I
found an idea key scheme for eclipse. Download
the latest jar from the following URL –
Few people told me why are you using idea, it is not possible to create jar from it. Actually this idea about idea is totally wrong. To make a jar from idea go to
File -> Project Structure -> Artifacts
Then click the plus sign to add a jar setting. The “Create Jar from Modules” window will appear. Select the module and main class.
1) Choose extract to the target jar to include all the library jars include in your jar. Then press Apply and Ok. After than you will see a “Build ‘moduleName.jar:’ artifact” option in Build menu. It’s simple.
Or
2) And if you choose “copy to output directory and link via manifest” the edit the manifest to locate the library jars in Class-Path tag ex-(lib/one.jarlib/two.jar). Remind that if you execute the jar from a folder which folder is located in the project root directory and your library jars are located on a “lib” folder which is also in the root project directory, then add class path like (Class-Path: ../lib/one.jar ../lib/two.jar)
I was working on a renowned XYZ software company. They prefer IntelliJ IDEA as a IDE. My senor collogue give me some task and I was working on the IDEA. He found the IDE is too slow and suggest me to increase the virtual memory. So I have change it in the “idea.vmoptions” file located on (/idea/bin). ====================================== -Xms700m -Xmx1024m -XX:MaxPermSize=450m -ea ===================================== But it seems too slow for scrolling the codes on IDEA. Then my senior suggests me to use version 6 instead of version 8. But I was working with IDEA 8 and looking for a solution. Suddenly senior bro came to me and wanted to see my progress. When he found IDEA version 8 he became angry and warn me he will delete all my code. I was so scared though I have IDEA local history and git ;) . Then I suddenly found the solution that it frequently uses graphics card but I know that it is not NFS(my favorite game :P) so I can disable that by including -Dsun.java2d.pmoffscreen=false At the end of the “idea.vmoptions” file. And the problem solved :D