Thursday, 22 November 2018

Spring AOP AspectJ @After Annotation Example | Spring Tutorial


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

Click the below Image to Enlarge:
Spring AOP AspectJ @After Annotation Example | Spring Tutorial

Spring AOP AspectJ @After Annotation Example | Spring Tutorial

Spring AOP AspectJ @After Annotation Example | Spring Tutorial

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 http://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.5.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>

        <!-- Spring AOP + AspectJ -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
        </dependency>
       
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>1.9.1</version>
        </dependency>
       
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.9.1</version>
        </dependency>

    </dependencies>

</project>

EmployeeService.java

package com.ram.service;

public class EmployeeService
{
    public void addEmployee()
    {
        System.out.println("Add Employee ");
    }
   
    public void modifyEmployee()
    {
        System.out.println("Modify Employee");
    }
   
    public void deleteEmployee()
    {
        System.out.println("Delete Employee");
    }

}

LoggingAspect.java

package com.ram.Aspect;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;

@Aspect
public class LoggingAspect
{

    @After("execution(* com.ram.service.EmployeeService.addEmployee())")
    public void logAfter(JoinPoint joinPoint)
    {

        System.out.print("logAfter() is running!");
        System.out.println(", after "
                + joinPoint.getSignature().getName() + " method");
        System.out.println("******");
    }

}

applicationContext.xml

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


    <aop:aspectj-autoproxy />

    <bean id="employeeService" class="com.ram.service.EmployeeService"></bean>
   
    <!-- Aspect -->
    <bean id="logAspect" class="com.ram.Aspect.LoggingAspect" />

</beans>

App.java

package com.ram.core;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.ram.service.EmployeeService;

public class App
{
    public static void main(String[] args)
    {
        ApplicationContext context = new ClassPathXmlApplicationContext(
                "applicationContext.xml");

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

        EmployeeService employeeService = context
                .getBean("employeeService", EmployeeService.class);

        employeeService.addEmployee();

        employeeService.modifyEmployee();

        employeeService.deleteEmployee();

    }

}

Output

Nov 07, 2018 10:10:23 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@32709393: startup date [Wed Nov 07 10:10:23 IST 2018]; root of context hierarchy
Nov 07, 2018 10:10:24 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
---------------------------------------
Add Employee
logAfter() is running!, after addEmployee method
******
Modify Employee
Delete Employee

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

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

Bitbucket Link:
https://bitbucket.org/ramram43210/spring/src/a5cdfdc3da3c676ee6dec77cfdb6b5c635be29d3/Spring_2018/SpringDemo_AspectJ_after/?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
  • Spring AOP AspectJ Before Advice example using XML configuration | Spring Tutorial


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

    Click the below Image to Enlarge:

    Spring AOP AspectJ Before Advice example using XML configuration | Spring Tutorial

    Spring AOP AspectJ Before Advice example using XML configuration | Spring Tutorial

    Spring AOP AspectJ Before Advice example using XML configuration | Spring Tutorial

    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 http://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.5.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>

            <!-- Spring AOP + AspectJ -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
                <version>${spring.version}</version>
            </dependency>
           
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjrt</artifactId>
                <version>1.9.1</version>
            </dependency>
           
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjweaver</artifactId>
                <version>1.9.1</version>
            </dependency>

        </dependencies>

    </project>

    EmployeeService.java

    package com.ram.service;

    public class EmployeeService
    {
        public void addEmployee()
        {
            System.out.println("addEmployee() is called");
        }
       
        public void modifyEmployee()
        {
            System.out.println("modifyEmployee() is called");
        }
       
        public void deleteEmployee()
        {
            System.out.println("deleteEmployee() is called");
        }

    }

    LoggingAspect.java

    package com.ram.Aspect;

    import org.aspectj.lang.JoinPoint;

    public class LoggingAspect
    {
        public void logBefore(JoinPoint joinPoint)
        {

            System.out.print("logBefore() is running!");
            System.out.println(", before "
                    + joinPoint.getSignature().getName() + " method");
            System.out.println("******");
        }

    }

    applicationContext.xml

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


        <bean id="employeeService" class="com.ram.service.EmployeeService"></bean>

        <!-- Aspect -->
        <bean id="logAspect" class="com.ram.Aspect.LoggingAspect" />

        <aop:config>

            <aop:aspect id="aspectLoggging" ref="logAspect">

                <!-- @Before -->
                <aop:pointcut id="pointCutBefore"
                    expression="execution(* com.ram.service.EmployeeService.addEmployee()))" />

                <aop:before method="logBefore" pointcut-ref="pointCutBefore" />

            </aop:aspect>

        </aop:config>

    </beans>

    App.java

    package com.ram.core;

    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;

    import com.ram.service.EmployeeService;

    public class App
    {
        public static void main(String[] args)
        {
            ApplicationContext context = new ClassPathXmlApplicationContext(
                    "applicationContext.xml");

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

            EmployeeService employeeService = context
                    .getBean("employeeService", EmployeeService.class);

            employeeService.addEmployee();

            employeeService.modifyEmployee();

            employeeService.deleteEmployee();

        }

    }

    Output

    Nov 07, 2018 9:14:40 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
    INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@32709393: startup date [Wed Nov 07 09:14:40 IST 2018]; root of context hierarchy
    Nov 07, 2018 9:14:40 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    INFO: Loading XML bean definitions from class path resource [applicationContext.xml]
    ---------------------------------------
    logBefore() is running!, before addEmployee method
    ******
    addEmployee() is called
    modifyEmployee() is called
    deleteEmployee() is called

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

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

    Bitbucket Link:
    https://bitbucket.org/ramram43210/spring/src/a5cdfdc3da3c676ee6dec77cfdb6b5c635be29d3/Spring_2018/SpringDemo_aspectj_before_xml_config/?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
  • java.sql.Timestamp class Introduction | Java Date and Time


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

    Click the below Image to Enlarge:
    java.sql.Timestamp class Introduction | Java Date and Time

    TimestampDemo.java

    import java.sql.Timestamp;

    public class TimestampDemo
    {
        public static void main(String[] args)
        {
            long millisecond = System.currentTimeMillis();

            /*
             * Constructs a Timestamp object using a milliseconds time
             * value. The integral seconds are stored in the underlying
             * date value; the fractional seconds are stored in the nanos
             * field of the Timestamp object.
             *
             * Parameters:
             *
             * time - milliseconds since January 1, 1970, 00:00:00 GMT. A
             * negative number is the number of milliseconds before
             * January 1, 1970, 00:00:00 GMT.
             */

            Timestamp timestamp = new Timestamp(millisecond);
            System.out.println(timestamp);
        }

    }

    Output

    2018-11-03 11:04:10.96

    Refer: 
    https://docs.oracle.com/javase/8/docs/api/index.html?java/sql/Timestamp.html

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

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

    Bitbucket Link:
    https://bitbucket.org/ramram43210/java/src/4cfac93378c4f9d33f18bb5083115d18778294de/BasicJava_2018/TimestampDemo_Intro/?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
  • How to use setTime(long time) method of java.sql.Time class | Java Date and Time


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

    TimeDemo.java

    import java.sql.Time;

    public class TimeDemo
    {

        public static void main(String[] args)
        {

            Time time = Time.valueOf("15:06:00");
            System.out.println("Before setTime = " + time);

            /*
             * Sets a Time object using a milliseconds time value.
             */

            time.setTime(System.currentTimeMillis());
            System.out.println("After setTime  = " + time);

        }

    }

    Output

    Before setTime = 15:06:00
    After setTime  = 09:51:09

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

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

    Bitbucket Link:
    https://bitbucket.org/ramram43210/java/src/4cfac93378c4f9d33f18bb5083115d18778294de/BasicJava_2018/TimeDemo_setTime/?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
  • How to use toLocalTime() method of java.sql.Time class | Java Date and Time


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

    TimeDemo.java

    import java.sql.Time;
    import java.time.LocalTime;

    public class TimeDemo
    {

        public static void main(String[] args)
        {

            Time time = Time.valueOf("15:06:20");
            System.out.println("time      = "+time);

            /*
             *
             * The conversion creates a LocalTime that represents the same
             * hour, minute, and second time value as this Time.
             *
             * Returns:
             *
             * a LocalTime object representing the same time value
             */

            LocalTime localTime = time.toLocalTime();
            System.out.println("localTime = "+localTime);

        }

    }

    Output

    time      = 15:06:20
    localTime = 15:06:20

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

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

    Bitbucket Link:
    https://bitbucket.org/ramram43210/java/src/4cfac93378c4f9d33f18bb5083115d18778294de/BasicJava_2018/TimeDemo_toLocalTime/?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