Archive | March 2017

Swagger – Spring Boot

Step #1: Add maven dependency

                <dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger2</artifactId>
			<version>2.6.1</version>
		</dependency>
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger-ui</artifactId>
			<version>2.6.1</version>
		</dependency>

Step #2: Create a SwaggerConfig.java in com.janani.config

package com.revature.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SwaggerConfig {

	@Bean
	public Docket api() {
		// @formatter:off
		return new Docket(DocumentationType.SWAGGER_2)
				.groupName("lms-api")
				.apiInfo(apiInfo())
				.select()
				.paths(PathSelectors.any()).build();
	}

	// @formatter:on
	// private Predicate<String> fetchPaths() {
	// return or(regex("/holidays.*"), regex("/roles.*"),
	// regex("/employees.*"));
	// }

	private ApiInfo apiInfo() {
		// @formatter:off
		return new ApiInfoBuilder()
				.title("LMS API")
				.description("Leave Management System")
				.license("LMS License")
				.contact("jananise@gmail.com")
				.licenseUrl("https://github.com/JananiVelmurugan")
				.version("1.0").build();
	}

}

Step #3: http://localhost:5000/swagger-ui.html#/

Notes

Spring 01 – Introduction

Spring Framework – Overcome tightly-coupled
Dependency of Injection – Inversion of Control
Install Spring Framework (Two ways)
-> Dependency Management Tool – Maven downloads spring jars from central repository
-> download jars directly
Spring project recommends 1st way
Java Beans or Beans

Log4 j
Library for logging functionality
Speed and thread safety
Allows to set different logging levels
Download log 4 j
https://logging.apache.org/log4j/2.x/download.html
Levels
ALL<DEBUG<INFO<WARN<ERROR where advice is actually applied
Aspect = Advice + Pointcut
Introduct/Mixin -> introduce new methods to a class
Weaving – process of creating proxies
4 main components
 Application context
 A configuration class
 The beans
 Aspect that advice beans

Demo on $scope

<html ng-app="myApp">

<head>
    <script src="angular.min.js"></script>
    <script>
        var productApp = angular.module("myApp", []);
        console.log("myApp called");
        productApp.controller("myController", function ($scope) {
            console.log("myController called");
            $scope.showProducts = function () {
                console.log("showProducts called");
                $scope.products = ["Samsung", "Apple"];
                console.log($scope.products);
            }
        });
    </script>
</head>

<body>
    <div ng-controller="myController">
        <a href="#" ng-click="showProducts()">Show Products</a> {{products}}
    </div>
</body>

</html>

First Controller

<html ng-app="myApp">

<head>
    <script src="angular.min.js"></script>
    <script>
        var myFirstApp = angular.module('myApp', []);
        myFirstApp.controller("FirstController", function () {
            console.log("FirstController Called");
        });
    </script>
</head>

<body>
    <div ng-controller="FirstController">
        Welcome to ng
</body>

</html>

First Module

<html ng-app="myApp">

<head>
    <script src="angular.min.js"></script>
    <script>
        var myFirstApp = angular.module('myApp', []);
        console.log("Hello World");
    </script>
</head>

<body>
    Welcome to ng
</body>

</html>

Hello World

<html ng-app="myFirstApp">
<head>
    <script src="angular.min.js"></script>
    <script>
        console.log("Hello World");
    </script>
</head>
<body>
        Welcome to ng 
</body>
</html>

Kickstart

1)Download angular js from https://angularjs.org/

2)Place the angular.min.js in C:\xampp\htdocs\angular

3)Save html files in the same location

4)Start Apache server in xampp

5)Open html fie in browser

6) Use F12 key to view console in we browser

MAC OS – Usage

windows key + space => spotlight

spotlight -> used to search files in the system

ctrl + i or right click folder->get info => To get info of a folder

Create Maven Project using Terminal

admins-Mac-mini-2:~ admin$ mvn -v
Apache Maven 3.0.3 (r1075438; 2011-02-28 23:01:09+0530)
Maven home: /usr/share/maven
Java version: 1.8.0_121, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: “mac os x”, version: “10.8.5”, arch: “x86_64”, family: “mac”

admins-Mac-mini-2:~ admin$ mvn archetype:generate -DgroupId=com.janani.bank -DartifactId=consumerBanking -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

admins-Mac-mini-2:~ admin$ pwd
/Users/admin
admins-Mac-mini-2:~ admin$ ls ~/.m2/
repository
admins-Mac-mini-2:~ admin$ cd .m2
admins-Mac-mini-2:.m2 admin$ cd repository
admins-Mac-mini-2:repository admin$ ls
antlr commons-logging
asm dom4j
backport-util-concurrent jdom
classworlds junit
com log4j
commons-cli net
commons-codec org
commons-collections xml-apis
commons-io xpp3
commons-lang
admins-Mac-mini-2:repository admin$

Laravel – Model and Controller

C:\Users\EP\book>php artisan make:controller UserAccountController –resource –model=UserAccount

A App\UserAccount model does not exist. Do you want to generate it? (yes/no) [yes]:
> yes

Model created successfully.
Controller created successfully.