Monday, 16 April 2018

Spring Tutorial

How to use isNegative and isZero methods of Duration class | Java 8 Date and Time


Click here to watch on Youtube:
https://www.youtube.com/watch?v=qUyoIW4WezI&list=UUhwKlOVR041tngjerWxVccw

DurationDemo.java

import java.time.Duration;
import java.time.LocalTime;

public class DurationDemo
{
    public static void main(String[] args)
    {

        Duration duration = Duration.between(LocalTime.NOON,
                LocalTime.MIDNIGHT);
        System.out.println("duration = "+duration);
        /*
         * Returns:true if this duration has a total length less than
         * zero
         */

        System.out.println("is duration Negative? = "+duration.isNegative());

        /*
         * Returns:true if this duration has a total length equal to
         * zero
         */

        System.out.println("is duration zero? = "+duration.isZero());
    }

}

Output

duration = PT-12H
is duration Negative? = true
is duration zero? = false

Click the below link to download the code:
https://sites.google.com/site/ramj2eev2/java_basics/DurationDemo_isNegative_zero.zip?attredirects=0&d=1

Github Link:
https://github.com/ramram43210/Java/tree/master/BasicJava_2018/DurationDemo_isNegative_zero

Bitbucket Link:
https://bitbucket.org/ramram43210/java/src/8497cbe1b661ade036f769d804f96b3ba18763d5/BasicJava_2018/DurationDemo_isNegative_zero/?at=master

See also:

  • All JavaEE Videos Playlist
  • All JavaEE Videos
  • All JAVA EE Links
  • Spring Tutorial
  • Servlets Tutorial
  • All Design Patterns Links
  • JDBC Tutorial
  • Java Collection Framework Tutorial
  • JAVA Tutorial
  • Kids Tutorial
  • Cooking Tutorial
  • Friday, 13 April 2018

    What is IoC Container in Spring? | What is Spring IoC Container? | Spring Tutorial - Playlist

    🚀 Master Spring & Java with Ram N Java!

    Want more crystal-clear coding tutorials? Join our community today and never miss a deep dive!

    SUBSCRIBE NOW (FREE)

    What is the Spring IoC Container?

    In the world of Java development, the Spring Framework is famous for making complex things simple. At the very heart of Spring is the IoC (Inversion of Control) Container. If you want to build professional Java applications, understanding this container is the first and most important step!

    1. Understanding Inversion of Control (IoC)

    Before Spring, developers had to manually create objects and manage their relationships. With Inversion of Control, we "invert" that responsibility. Instead of you creating the objects, you let the Spring Container do it for you. You simply tell Spring what you need, and it takes care of the "how" and "when."

    2. What Does the Container Actually Do?

    The IoC Container is like a high-end management system for your Java objects (which Spring calls "Beans"). Its main jobs are:

    • Instantiating Beans: Creating the objects for you.
    • Configuring Beans: Setting up the initial values they need.
    • Assembling Beans: Connecting different objects together so they can work as a team (Dependency Injection).
    • Managing the Life Cycle: Handling everything from the moment a bean is created until it's destroyed.

    3. The Two Main Types of Containers

    Spring provides two different implementations of the IoC container:

    • BeanFactory: The simplest container, perfect for lightweight applications.
    • ApplicationContext: A more advanced container built on top of BeanFactory. It adds professional features like internationalization, event propagation, and easy integration with AOP.

    4. Why Should You Care?

    Using the IoC container makes your code cleaner, more flexible, and easier to test. Since your classes don't need to know how to create their own dependencies, they become much easier to manage. This is the "magic" that allows Spring applications to scale so effectively!


    Click here to watch on Youtube: 
    https://www.youtube.com/watch?v=3K-uPe9SZLc&list=PLmCsXDGbJHdjHU5AFupvzyTWtjSG-QZEz

    See also:
  • All JavaEE Videos Playlist
  • All JavaEE Videos
  • All JAVA EE Links
  • Servlets Tutorial
  • All Design Patterns Links
  • JDBC Tutorial
  • Java Collection Framework Tutorial
  • JAVA Tutorial
  • Kids Tutorial
  • Cooking Tutorial
  • What is IoC Container in Spring?_V1 | What is Spring IoC Container? | Spring Tutorial

    🚀 Master Spring & Java with Ram N Java!

    Want more crystal-clear coding tutorials? Join our community today and never miss a deep dive!

    SUBSCRIBE NOW (FREE)

    What is the Spring IoC Container?

    In the world of Java development, the Spring Framework is famous for making complex things simple. At the very heart of Spring is the IoC (Inversion of Control) Container. If you want to build professional Java applications, understanding this container is the first and most important step!

    1. Understanding Inversion of Control (IoC)

    Before Spring, developers had to manually create objects and manage their relationships. With Inversion of Control, we "invert" that responsibility. Instead of you creating the objects, you let the Spring Container do it for you. You simply tell Spring what you need, and it takes care of the "how" and "when."

    2. What Does the Container Actually Do?

    The IoC Container is like a high-end management system for your Java objects (which Spring calls "Beans"). Its main jobs are:

    • Instantiating Beans: Creating the objects for you.
    • Configuring Beans: Setting up the initial values they need.
    • Assembling Beans: Connecting different objects together so they can work as a team (Dependency Injection).
    • Managing the Life Cycle: Handling everything from the moment a bean is created until it's destroyed.

    3. The Two Main Types of Containers

    Spring provides two different implementations of the IoC container:

    • BeanFactory: The simplest container, perfect for lightweight applications.
    • ApplicationContext: A more advanced container built on top of BeanFactory. It adds professional features like internationalization, event propagation, and easy integration with AOP.

    4. Why Should You Care?

    Using the IoC container makes your code cleaner, more flexible, and easier to test. Since your classes don't need to know how to create their own dependencies, they become much easier to manage. This is the "magic" that allows Spring applications to scale so effectively!


    Click here to watch on Youtube: 
    https://www.youtube.com/watch?v=3K-uPe9SZLc&list=UUhwKlOVR041tngjerWxVccw

    Click the below Image to Enlarge:
    What is IoC Container in Spring?_V1 | What is Spring IoC Container? | Spring Tutorial

    What is IoC Container in Spring?_V1 | What is Spring IoC Container? | Spring Tutorial

    What is IoC Container in Spring?_V1 | What is Spring IoC Container? | Spring Tutorial

    What is IoC Container in Spring?_V1 | What is Spring IoC Container? | Spring Tutorial

    What is IoC Container in Spring?_V1 | What is Spring IoC Container? | Spring Tutorial

    What is IoC Container in Spring?_V1 | What is Spring IoC Container? | Spring Tutorial

    What is IoC Container in Spring?_V1 | What is Spring IoC Container? | Spring Tutorial

    What is IoC Container in Spring?_V1 | What is Spring IoC Container? | Spring Tutorial

    What is IoC Container in Spring?_V1 | What is Spring IoC Container? | Spring Tutorial

    Maven Command.txt

    Compile:

    mvn clean compile

    pom.xml

    <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%20http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.ram.core</groupId>
        <artifactId>SpringDemo</artifactId>
        <packaging>jar</packaging>
        <version>1.0-SNAPSHOT</version>
        <name>SpringDemo</name>
        <url>http://maven.apache.org</url>

        <properties>
            <spring.version>5.0.2.RELEASE</spring.version>
        </properties>

        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.1</version>
                <scope>test</scope>
            </dependency>

            <!-- Spring 5 dependencies -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring.version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
            </dependency>
        </dependencies>
    </project>

    Employee.java

    package com.ram.model;

    /**
     * Spring bean
     *
     */

    public class Employee
    {
        private String name;

        public void setName(String name)
        {
            this.name = name;
        }

        public void employeeDetails()
        {
            System.out.println("Employee Name =  " + name);
        }
    }

    ApplicationContext.xml

    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">


        <bean id="employee" class="com.ram.model.Employee">
            <property name="name" value="Peter" />
        </bean>

    </beans>

    App.java

    package com.ram.core;

    import org.springframework.beans.factory.BeanFactory;
    import org.springframework.beans.factory.xml.XmlBeanFactory;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import org.springframework.core.io.ClassPathResource;
    import org.springframework.core.io.Resource;

    import com.ram.model.Employee;

    public class App
    {
        public static void main(String[] args)
        {
            usingBeanFactory();
            usingApplicationContext();

        }

        private static void usingBeanFactory()
        {
            System.out.println("************* Using BeanFactory ************* ");
            Resource resource = new ClassPathResource("applicationContext.xml");
            BeanFactory factory = new XmlBeanFactory(resource);

            System.out.println("---------------------------------------");

            Employee employee = (Employee) factory.getBean("employee");
            System.out.println(
                    "Got employee object from the BeanFactory(Spring Container)");
            employee.employeeDetails();
        }

        private static void usingApplicationContext()
        {
            System.out.println("\n************* Using ApplicationContext ******* ");
            ApplicationContext context = new ClassPathXmlApplicationContext(
                    "applicationContext.xml");

            System.out.println("---------------------------------------");

            Employee employee = (Employee) context.getBean("employee");
            System.out.println(
                    "Got employee object from the ApplicationContext(Spring Container)");
            employee.employeeDetails();
        }
    }

    Output.txt

    ************* Using BeanFactory *************
    Apr 05, 2018 9:44:21 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
    ---------------------------------------
    Got employee object from the BeanFactory(Spring Container)
    Employee Name =  Peter

    ************* Using ApplicationContext *******
    Apr 05, 2018 9:44:22 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
    INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@26ba2a48: startup date [Thu Apr 05 09:44:22 IST 2018]; root of context hierarchy
    Apr 05, 2018 9:44:22 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
    ---------------------------------------
    Got employee object from the ApplicationContext(Spring Container)
    Employee Name =  Peter

    Click the below link to download the code:
    https://sites.google.com/site/ramj2eev2/java_basics/SpringDemo_IOC_Container_V1.zip?attredirects=0&d=1

    Github Link:
    https://github.com/ramram43210/javaee/tree/master/Spring_2018/SpringDemo_IOC_Container_V1

    Bitbucket Link:
    https://bitbucket.org/ramram43210/spring/src/a60a91aa34013374c842d2668a441068c9cc47ff/Spring_2018/SpringDemo_IOC_Container_V1/?at=master

    See also:

  • All JavaEE Videos Playlist
  • All JavaEE Videos
  • All JAVA EE Links
  • Servlets Tutorial
  • All Design Patterns Links
  • JDBC Tutorial
  • Java Collection Framework Tutorial
  • JAVA Tutorial
  • Kids Tutorial
  • Cooking Tutorial
  • Tutorials