Java Spring Boot applikation utveckling

Java Utveckling för webben med hjälp av Spring Boot gör många av Java tekniker enklare att använda på en webbapplikation. Exemplar består av databasanvändning (Data source), säkerhet (Security), och Sessions. I det här inlägget beskriver jag olika färdiga tekniker genom sina egna projekt. Varje projekt som länkas till är en färdig projekt som jag använder som en exempel på tekniken, förklaras kort på varje film.

 

App 1

Här är Spring Boot projektet som använder Spring Boot Security med en databas för inloggningar samt en NoOpPasswordEncoder.
Här finns projektet för att ladda ner: 1.SpringBootSecurityWithDataSource,NoOpPasswordEncoder

App 2

Här är Spring Boot Security appen med BCrypt som password encoder:
Här finns projektet för att ladda ner:

2.SpringBootSecurityWithBCrypt

App 3

Här är Spring Boot Security appen som använder sig av Sessions för att spara användaresinformation som till exempel användarnamn på sessions.
Här finns projektet för att ladda ner:  Spring Boot Security och Session från databasinformation

App 4

Här är två appar som samarbetar: en Java Spring Boot applikation och en Angular applikation. En fungerar på backend och serverar JSON objekter och en presenterar en “drag and drop” gränssnitt för interaktioner på JSON slutpunkter. Gränssnittet använder JSON Objekter för att göra interaktioner möjligt i samband med resurs och klient hantering. Nedan finns en demo film. För att köra Java Spring Boot applikationen så behövs det att du har en Redis Server och MySQL databas på plats. En exempel på hur den databasen kan se ut finns i Java appens källkatalog.
Koden på de två appar finns för nedladdning: TwoApps–backend with JSON Rest (using Java), frontend with drag and drop (using Angular)

Notes while working with MySQL database

  • CDing into MySQL Server 8.0
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
  • Logging into MySQL Server:
.\mysql -u root -p
  • Shutting down server after logging in:
shutdown;
  • Starting up the server again via DOS (given it is administrator account):
net start mysql80
  • Show databases available:
show databases;
  • Start working with one of the databases:
use <database name>
  • View all records in a given table:
select * from <table name>;
  • Delete a record from a given table:
delete from <table name> where <condition>;
  • Rename a table:
ALTER TABLE table_name RENAME TO new_table_name;
  • Create a table:
CREATE TABLE `student` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `forename` varchar(255) DEFAULT NULL,
  `lastname` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `ìd` (`id`),
  UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  • Insert into table:
INSERT INTO student (id, forename, lastname, email) VALUES (20,"Bob","L.","test@test.com");
INSERT IGNORE INTO student (id, forename, lastname, email) VALUES (20,"Bob","L.","test@test.com");
  • save the last insert Id:
SET @last_id = LAST_INSERT_ID();
  • get the last insert Id:
SELECT @last_id;
  • Alter a table, add a column:
ALTER TABLE table_name ADD column_name datatype;

eg:

 ALTER TABLE `resource` ADD `url` varchar(255);
  • Alter a table column, i.e.:
    ALTER TABLE table_name MODIFY COLUMN column_name datatype;
ALTER TABLE `users` MODIFY COLUMN id INT(11) NOT NULL;
  • Alter a table, drop a column:
ALTER TABLE `tableName` DROP COLUMN `columnName`;
  • Update a table column, i.e.:
    UPDATE table_name SET column1 = value1, column2 = value2, …
    WHERE condition;
UPDATE `users` SET id=6 WHERE username='user1';
  • Add a foreign key to an existing table:
ALTER TABLE`tablename` ADD CONSTRAINT `fk_namedescrip` FOREIGN KEY (`fieldinthistable`) REFERENCES referringtable(fieldinthereferringtable);
  • Update one or two tables that have foreign keys which make updating rise a foreign key constraint.
-- set foreign key checks to 0 first...
SET FOREIGN_KEY_CHECKS = 0;
-- do the update, eg:
update authorities set username='AdminBob' where username='bob1';
-- return the foreign key check to 1, i.e.:
SET FOREIGN_KEY_CHECKS = 1;

Setting up new WildFly18 configuration in IntelliJ IDEA Ultimate to deploy Java EE Maven app

Although the WildFly Maven Plugin “is used to deploy, undeploy, or run your application”, it suffices to set up a “Run Configuration” and to proceed with having the basics of your Java EE maven dependencies, if you want to work with a Maven Java EE app in IntelliJ IDEA Ultimate.

Below are images on how to set up a new local JBoss configuration for your Java EE application in IntelliJ IDEA Ultimate, given that you have downloaded and installed WildFly18 in a folder such as in C:\wildfly-18.0.0.Final.

  1. Open the dialog box to edit a run configuration:

2. Click on Edit Configuration to start setting up a new configuration:

3. Locate the JBoss Server configuration and add a local setup:

4. Select the installed application server folder by clicking on Configure:

5. Since the “Fix” button shows up in the right bottom corner, click the button and select the option that you wish, in this example, war exploded option

The “Deployment” tab now shows the war file being deployed:

6. You now have a JBoss configuration availabe which you can run your Java EE app on.

Other resources related to WildFly and Maven:
https://docs.jboss.org/wildfly/plugins/maven/latest/
https://wildfly.org/

Min upplevelse i vårdbiträde/ undersköterska arbetsrollen och mitt gymnasiearbete

Att välja arbetsuppgifter dagligen på ett etiskt sätt är en egenskap som härliga människor utvecklar. En ledare, en lärare och en undersköterska är några av de personer som påverkar dig mest med härlig och snäll attityd.

När du har erfarna undersköterskearbetsledarna som tar emot dig i glädje, som litar på dig på ditt arbete, som ger dig lite mer anpassade arbetsmoment och stöder dig även om att det kan vara lite för mycket i början så känner man att det varit det bästa val att vara med.

Vill man lära sig från människor och att bidra till livskvaliteten så finns det bra alternativ. Att vara undersköterska är en av dem.

På en sådan utbildning så har jag upplevt:

  • Hur en härligt lärare ger elever tröst i vad som de valt.
  • Hur den fina attityden som dina klasskamrater har för arbetsrollen har lönat sig.
  • Hur man målsätter för arbete i framtiden.
  • Hur viktigt etiska diskussioner är.
  • Vad som några av vårdrutiner hjälper med när det gäller kroppen, livskvalitet, teori, definitioner om hälsan, och ämne som rör sig om boendes dagliga liv.

På min praktikplats så såg jag hur mina arbetsledarna arbetar och hur jag till exempel kan:

  • öka kvalitet med boendes matvanor
  • fråga boende och assistera till verksamhetens trädgård
  • spela en musikinstrument om man kan eller lyssna på kollegor som kan.
  • vara tillgänglig för boende.
  • lära sig vårdrutiner med till exempel hygien, blodprov, och blodtrycksmätning

En undersköterska tar hänsyn till sammanhang i verksamheten, boendes stöd, och personlig utveckling.

Jag rekommenderar att man väljer sitt arbete medveten och försöker förstå hur man påverkar människor man kommer i kontakt med. Att göra positiva skillnader i andras liv kan vara den bästa gåvan du ger dig själv. Oavsett hur svårt eller givande arbetet varit så är det fortfarande mans egen val. Så får man reflektera över den givande rollen, hör andras kritik, och gör vad som är etisk och gör skillnad för personer. Det lönar sig enormt och då blir man tacksam. Jag valde att utbilda mig till undersköterska på ett medvetet sätt i början. Jag har haft lärarna, arbetsledarna, kontaktpersoner, bekant och kompisar som valde olika utbildningar och arbetsroll på det medvetna sättet och de har haft stor påverkningar på mig till exempel som också ville välja bra.

Yatzi

A project for the game board “Yatzi”, this app gives the user 5 random dices and the score cards to play. The project is written in JavaScript and the JavaScript framework Vue.js.

To name a few technical details, there is a JavaScript file processing the results for the 5 thrown dices to find all possible scoring rules which the user can select, a set of Vue.js components which make the various parts of the logical and graphical interface, a main Vue.js Store with mutations and getters, and the logic for dice roll. The Vue.js components include card displays, user name and number-of-players feature, and game score display.

Some suggested files and links are: