Design Patters, Java and the Factory Pattern

Have you ever looked at a piece of code, project or application and thought “what on earth is going on here”? I have many times and so have many other developers, so ages ago, Design Patterns were introduced to keep coding clean, and organised.

You probably organise your code already closely to a few design patterns without even realising. Today, I’ll introduce the Factory Pattern as a method of structuring your code.

The Factory Pattern allows objects of similar logic to be created to a common interface.

Tutorialspoint has a great example involving shapes.

Summarising the example, you can have a shape factory that creates triangles, squares, circles.

This may seem rather abstract, but for example, you may want to make different types of database connection for customers and want to get their details, which they would have a Customer interface, but a Customer Factory for all the individual details so that they are not exposed to the client.

Getting Started With Spring Boot?

What is Spring Boot?

Spring Boot is a Java framework. Spring Boot shouldn’t be confused with Spring Framework and more information can be found here.

How do I get started?

The Spring Boot webpage is a great place to start. You can install via Maven (or Gradle).

Great, why should I do this?

Spring Boot is great for setting up web services and other applications quickly and without too much complication, but allows the developer to configure parts to make diverse applications without spending too much time setting up the project.

Give it a try and see what you think 🙂

 

How to Make MySQL and Spring-Boot CRUD application for Raspberry Pi

In this post, I will share how to make a very basic Spring Boot application and database with MySQL with Raspberry Pi.

Perquisites:

  • I will assume you know Git and Source Control and you know how to set up a Raspberry Pi.

Lets Start:

Installing MySQL Raspberry Pi

Using some information from this guide, you will need to install MySQL and drivers. Php is not needed for this.

  • Open up your terminal on your Raspberry Pi
  • sudo apt-get install mysql-server --fix-missing
  • Agree  to all of the install terms
  • Create a password for your MySQL database when required
  • sudo apt-get install mysql-client php5-mysql
  • Agree to all of the install terms

MySQL should be installed correctly on your Raspberry Pi.

Installing Maven

You will need Apache Maven to run the application on your Raspberry Pi.

I will summarise this tutorial as this is what I used:

Before starting developing the Application, I advise you use an IDE on a main computer and Git with source control to transfer it over.

  • Create an account on GitHub to store the project that will be created in the next part
  • Once created, clone the repository onto the Raspberry Pi and your laptop or desktop development environment

From Spring Boot’s website we’ll follow this guide.

You should build this application on your GitHub repository that you created earlier and pull it via command line on your Raspberry Pi as this will keep the development fast.

How to Install Java for Development

After the previous post to What is Java I will now provide a quick start up to installing Java, so you can start to develop your own applications.

Is Java Development Kit and Java Runtime Environment installed?

To check this, on linux and mac OS open terminal (for Windows, open cmd) and type:

javac -version
This will show the JDK version.

java -version
Will show the JRE version.

Please note – it is important that the JDK and JRE versions match – for example 1.8.X for both, where X can be any number, if it is 1.7.X and 1.8.X for the JDK or JRE (or vice versa), the code will not compile as Java needs to be the same version for compilation as running.

Typically, on a mac, it would be installed. If not, Oracle’s official installation JDK and JRE will provide the information to install it.

For Linux, here is the official installation JDK and JRE.

For Windows, here are the System Requirements, then install the JDK and JRE.

If things start to go wrong, here are some quick points to check:

  • Is the JDK and JRE installed already?
  • Are the versions the same or different?
  • For Windows – Is the JDK and JRE on your PATH variables?
  • For Mac and Linux – Is $PATH got the correct path to your JDK and JRE?

For further information – please go to Oracle’s Official Website  for installation tips and requirements.

What is Java?

Quoting from Wikipedia – Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented.

So, what does that mean?

  • Java can execute several computations in overlapping time periods – for example, multithreading is used to execute several tasks at the same time.
  • Java has classes – therefore you can use inheritance and encapsulation.
  • Java has objects – you can define attributes of the object and use them in the code.

Other Features Developing Java

  • Java uses a compiler – when developing Java, you need to use a Java Development Kit (JDK) to compile the code into byte code that is run on a Java Virtual Machine (JVM)
  • Write once, run everywhereWikipedia, you can run Java bytecode on any JVM on any machine, what this means is you do not need different flavours of code to run on different systems like Linux and Microsoft – providing they have a JVM, you can run the code on all of them.