Showing posts with label Spring. Show all posts
Showing posts with label Spring. Show all posts

Thursday, March 21, 2019

Spring Boot , Hello World Example

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".
We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.
Features
  • Create stand-alone Spring applications
  • Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
  • Provide opinionated 'starter' dependencies to simplify your build configuration
  • Automatically configure Spring and 3rd party libraries whenever possible
  • Provide production-ready features such as metrics, health checks and externalized configuration
  • Absolutely no code generation and no requirement for XML configuration
Technologies stack:
  • Spring Boot 2.1.3.RELEASE
  • Maven
  • JDK 1.8
Create Project:

To Create Project with spirng boot use https://start.spring.io/ which allow you to dowload .zip files. After download extract and import with IDE.



Project Structure:



Project Dependencies:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>com.commons</groupId>
<artifactId>SpringHelloWorld</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>SpringHelloWorld</name>
<description>Demo project for Spring Boot</description>

<properties>
<java.version>1.8</java.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>

<!-- Need this to compile JSP -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

</project>

Need to Add high lighted Dependency manually to run jsp 

Run Application: 

Now Run Main Class (where public static void main method define) from base package, In our case we have "SpringHelloWorldApplication", It will run tomcat with port 8080





It is better to conquer yourself than to win a thousand battles. Then the victory is yours. It cannot be taken from you, not by angels or by demons, heaven or hell. 
                                                                                                                          -Buddha


Friday, March 15, 2019

[Spring Interview Question] - Difference between BeanFactory and ApplicationContext in Spring?



BeanFactory ApplicationContext
Does not support the Annotation based dependency Injection. Support Annotation based dependency Injection.-@Autowired, @PreDestroy
Does not support. Can publish events to beans that are registered as listeners.
Does not support way to access Message Bundle(internationalization (I18N). Support internationalization (I18N) messages.
Does not support. Support many enterprise services such JNDI access, EJB integration, remoting.
By default its support Lazy loading. its By default support Aggresive loading.