Assignment 5 Debi
Assignment 5 Debi
CODE:
PaymentProcessor.java
package com.A5Q1;
CreditCardProcessor.java
package com.A5Q1;
import org.springframework.stereotype.Component;
@Component
public class CreditCardProcessor implements PaymentProcessor{
@Override
public String processPayment(double amount, String currency) {
return "Processing payment with credit card of "+amount+currency;
}
}
PayPalProcessor.java
package com.A5Q1;
import org.springframework.stereotype.Component;
@Component
public class PayPalProcessor implements PaymentProcessor{
@Override
public String processPayment(double amount, String currency){
return "Processing payment with PayPal of "+amount+currency;
}
}
BankTransferProcessor.java
package com.A5Q1;
import org.springframework.stereotype.Component;
@Component
public class BankTransferProcessor implements PaymentProcessor{
@Override
public String processPayment(double amount, String currency) {
return "Processing payment with Bank Transfer of "+amount+currency;
}
}
PaymentService.java
package com.A5Q1;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
@Component
public class PaymentService {
private PaymentProcessor paymentProcessor;
@Autowired
@Qualifier("creditCardProcessor")
public void setPaymentProcessor(PaymentProcessor paymentProcessor) {
this.paymentProcessor = paymentProcessor;
}
AppConfig.java
package com.A5Q1;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan(basePackages = "com.A5Q1")
public class AppConfig {
@Bean
public PaymentProcessor creditCardProcessor() {
return new CreditCardProcessor();
}
@Bean
public PaymentProcessor payPalProcessor() {
return new PayPalProcessor();
}
@Bean
public PaymentProcessor bankTransferProcessor() {
return new BankTransferProcessor();
}
}
App.java
package com.A5Q1;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class App {
public static void main(String[] args) {
ApplicationContext context = new
AnnotationConfigApplicationContext(AppConfig.class);
paymentService.setPaymentProcessor(context.getBean("creditCardProcessor",
PaymentProcessor.class));
paymentService.makePayment(100.0, "INR");
paymentService.setPaymentProcessor(context.getBean("payPalProcessor",
PaymentProcessor.class));
paymentService.makePayment(200.0, "INR");
paymentService.setPaymentProcessor(context.getBean("bankTransferProcessor",
PaymentProcessor.class));
paymentService.makePayment(300.0, "INR");
}
}
OUTPUT:
2. Write a java program to create a class Book with private data members such as
bookName, authorName,and edition. Use setter and getter, and display method. Create
a annotation based configuration and display book detail in the main class of Spring
Application.
CODE:
Book.java
package com.A5Q2;
public class Book {
String bookName, authorName;
int edition;
void display(){
System.out.println("Book Name: " + bookName);
System.out.println("Author Name: " + authorName);
System.out.println("Edition: " + edition);
}
}
AppConfig.java
package com.A5Q2;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan(basePackages = "com.A5Q2")
public class AppConfig {
@Bean
public Book book(){
Book book=new Book();
book.setBookName("Hands-on Application Development using Spring Boot");
book.setAuthorName("Shagun Bakliwal");
book.setEdition(2);
return book;
}
}
App.java
package com.A5Q2;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
OUTPUT:
StudentRunner.java
package com.A5Q3A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
@Component
public class StudentRunner implements CommandLineRunner {
@Autowired
public StudentRunner(Student student) {
this.student = student;
}
@Override
public void run(String... args) {
System.out.println(student.printMessage("World"));
}
}
AppConfig.java
package com.A5Q3A;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AppConfig {
@Bean
public Student student() {
return new Student();
}
}
App.java
package com.A5Q3A;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
OUTPUT:
Code:
Student.java
package com.A5Q3B;
AppConfig.java
package com.A5Q3B;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AppConfig {
@Bean
public Student student() {
return new Student();
}
}
App.java
package com.A5Q3B;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
@SpringBootApplication
public class App {
public static void main(String[] args) {
ApplicationContext context = SpringApplication.run(App.class, args);
OUTPUT:
CODE:
MyClass.java
package com.A5Q4;
void display(){
System.out.println("Name: "+name);
System.out.println("Registration No: "+regdNo);
System.out.println("Subject Name: "+subjectName);
System.out.println("Mark secured: " + markSecured+"\n");
}
}
StudentRunner.java
package com.A5Q4;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
@Component
public class StudentRunner implements CommandLineRunner {
@Autowired
public StudentRunner(MyClass student1, MyClass student2) {
this.student1 = student1;
this.student2 = student2;
}
@Override
public void run(String... args) {
System.out.println("THIS DATA IS SHOWN BY CommandLineRunner \n");
System.out.println("Student 1 Details:");
student1.display();
System.out.println("Student 2 Details:");
student2.display();
System.out.println("------------------------------------------");
}
}
AppConfig.java
package com.A5Q4;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AppConfig {
@Bean
MyClass student1(){
return new MyClass("Alice", 2141013059, "ADP", 75);
}
@Bean
MyClass student2(){
return new MyClass("Bob", 2141018950, "IR", 65);
}
}
App.java
package com.A5Q4;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
@SpringBootApplication
public class App {
public static void main(String[] args) {
ApplicationContext context = SpringApplication.run(App.class, args);
System.out.println("Student 2 Details:");
student2.display();
}
}
OUTPUT:
package com.A5Q5;
int getHouseNo(){
return houseNo;
}
@Override
public String toString() {
return "\nAddress"+'\n'+
"{\n" +
"House No: " + houseNo +'\n'+
"Post Office: "+ postOffice+'\n'+
"City: " + city +'\n'+
"State'" + state +'\n'+
"PIN: "+ pin+'\n'+
'}';
}
}
Teacher.java
package com.A5Q5;
@Override
public String toString() {
return "Teacher \n"+
"{" + '\n'+
"Name: " + name + '\n' +
"ID: " + id + '\n'+
"Mobile No: " + mobileNo + '\n'+
"}" + address;
}
}
JavaConfig.java
package com.A5Q5;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class JavaConfig {
@Bean
public Address address1(){
Address address=new Address();
address.setHouseNo(01234);
address.setPostOffice("Khandagiri");
address.setCity("Bhubaneswar");
address.setState("Odisha");
address.setPin(751030);
return address;
}
@Bean
public Address address2(){
Address address=new Address();
address.setHouseNo(109);
address.setPostOffice("Rohini");
address.setCity("Delhi");
address.setState("New Delhi");
address.setPin(110086);
return address;
}
@Bean
public Teacher teacher(@Qualifier("address1") Address address) {
Teacher teacher = new Teacher();
teacher.setName("Albert Einstein");
teacher.setId(8672);
teacher.setMobileNo(98765432);
teacher.setAddress(address);
return teacher;
}
}
App.java
package com.A5Q5;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
@SpringBootApplication
public class App {
public static void main(String[] args) {
ApplicationContext context = SpringApplication.run(App.class, args);
Teacher teacher = context.getBean(Teacher.class);
System.out.println(teacher);
}
}
OUTPUT:
Code:
Customer.java
package com.A5Q6;
public class Customer {
private String customerName, accountNo, IFSCCode;
@Override
public String toString() {
return "Customer{" +
"customerName='" + customerName + '\'' +
", accountNo='" + accountNo + '\'' +
", IFSCCode='" + IFSCCode + '\'' +
'}';
}
}
Config.java
package com.A5Q6;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan(basePackages = "com.A5Q6")
public class Config {
@Bean
public Customer customer() {
Customer customer = new Customer();
customer.setCustomerName("Chandan");
customer.setAccountNo("83847057241");
customer.setIFSCCode("SBIN0001075");
return customer;
}
}
App.java
package com.A5Q6;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
@SpringBootApplication
public class App {
public static void main(String[] args) {
ApplicationContext context = SpringApplication.run(App.class, args);
Customer customer = context.getBean(Customer.class);
System.out.println(customer);
}
}
OUTPUT:
7. Create a class named as Book having fields title, price, pDate(reference of class
pubDate) and override the toString Method. Use @value ,@Autowire @Component
and @override annotation in appropriate position. The class pubDate consists of filed
day, month, and year. Use @value to give value of each field and write toString
method. Display book details in the main method of app.java of Spring Application.
CODE:
PubDate.java
package com.A5Q7;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class PubDate {
@Value("10")
private int day;
@Value("11")
private int month;
@Value("2024")
private int year;
@Override
public String toString() {
return "PubDate{" +
"day=" + day +
", month=" + month +
", year=" + year +
'}';
}
}
Book.java
package com.A5Q7;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Component;
@Component
public class Book{
@Value("SpringBoot for Beginners")
String title;
@Value("1099")
int price;
@Autowired
PubDate pubDate;
@Override
public String toString() {
return "Book{" +
"title='" + title + '\'' +
", price=" + price +
", pubDate=" + pubDate +
'}';
}
}
App.java
package com.A5Q7;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
@SpringBootApplication
public class App{
public static void main(String[] args) {
ApplicationContext context=SpringApplication.run(App.class, args);
Book book=context.getBean(Book.class);
System.out.println(book);
}
}
OUTPUT:
8. Create a class and use appropriate annotation to display your name in browser
when user type.localhost:8080/home.
Code:
AppController.java
package com.A5Q8;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class AppContoller {
@GetMapping("/home")
public String greet(){
return "Hello Future";
}
}
App.java
package com.A5Q8;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class,args);
}
}
OUTPUT: