Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
java_dzienna_15_09
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Patryk Czarnik
java_dzienna_15_09
Commits
64291d6b
Commit
64291d6b
authored
Oct 04, 2022
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
@Autowired po raz pierwszy
parent
7f38e98c
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
43 additions
and
4 deletions
+43
-4
HistoriaJSON.java
PC29-Spring/src/main/java/com/example/demo/HistoriaJSON.java
+21
-0
Kalkulator.java
PC29-Spring/src/main/java/com/example/demo/Kalkulator.java
+9
-4
LogikaKalkulatora.java
...ing/src/main/java/com/example/demo/LogikaKalkulatora.java
+13
-0
No files found.
PC29-Spring/src/main/java/com/example/demo/HistoriaJSON.java
0 → 100644
View file @
64291d6b
package
com
.
example
.
demo
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
@Controller
public
class
HistoriaJSON
{
@Autowired
private
LogikaKalkulatora
logikaKalkulatora
;
@GetMapping
(
"/historia.json"
)
@ResponseBody
public
List
<
String
>
dajHistorie
()
{
return
logikaKalkulatora
.
getHistoriaDzialan
();
}
}
PC29-Spring/src/main/java/com/example/demo/Kalkulator.java
View file @
64291d6b
package
com
.
example
.
demo
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.Model
;
import
org.springframework.web.bind.annotation.GetMapping
;
...
...
@@ -9,7 +10,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping
(
"/kalkulator"
)
public
class
Kalkulator
{
private
LogikaKalkulatora
logikaKalkulatora
=
new
LogikaKalkulatora
();
@Autowired
private
LogikaKalkulatora
logikaKalkulatora
;
@GetMapping
public
String
kalkulatorGet
()
{
...
...
@@ -20,7 +22,7 @@ public class Kalkulator {
// do tej metody - wystarczy zadeklarować parametry o tej samej nazwie.
@PostMapping
public
String
kalkulatorPost
(
Model
model
,
Long
liczba1
,
Long
liczba2
,
String
operacja
)
{
long
wynik
=
logikaKalkulatora
.
oblicz
(
operacja
,
liczba1
,
liczba2
);
long
wynik
=
getLogikaKalkulatora
()
.
oblicz
(
operacja
,
liczba1
,
liczba2
);
model
.
addAttribute
(
"wynik"
,
wynik
);
return
"kalkulator.html"
;
}
...
...
@@ -28,9 +30,12 @@ public class Kalkulator {
// Ta metoda zadziała, gdy ktoś wejdzie pod adres /kalkulator/historia
@GetMapping
(
"/historia"
)
public
String
pokazHistorie
(
Model
model
)
{
model
.
addAttribute
(
"historia"
,
logikaKalkulatora
.
getHistoriaDzialan
());
model
.
addAttribute
(
"historia"
,
getLogikaKalkulatora
()
.
getHistoriaDzialan
());
return
"historia.html"
;
}
public
LogikaKalkulatora
getLogikaKalkulatora
()
{
return
logikaKalkulatora
;
}
}
PC29-Spring/src/main/java/com/example/demo/LogikaKalkulatora.java
View file @
64291d6b
...
...
@@ -4,6 +4,19 @@ import java.util.ArrayList;
import
java.util.Collections
;
import
java.util.List
;
import
org.springframework.stereotype.Component
;
/* Wstrzykiwaie zależności (dependency injection):
* - gdy przed klasą napiszemy adnotację @Component (albo: @Service, @Repository, @Controller, ...)
* to na starcie aplikacji Spring utworzy jeden obiekt tej klasy ("singleton") i będzie go pamiętać
* (ten obiekt będzie "beanem")
* - są też inne sposoby tworzenie beanów (konfiguracja w pliku beans.xml, adnotacje @Bean przy metodzie fabrycznej, ...)
*
* - gdy w innej klasie przy polu danego typu uzyjemy adnotacji @Autowired, to Spring wpisze tam referencję do znaego sobie obiektu danej klasy
* - są też inne sposoby wstrzykiwania: poprzez setter i poprzez konstruktor.
*/
@Component
public
class
LogikaKalkulatora
{
// Ponieważ ten sam obiekt listy będzie używany w różnych zapytaniach, to może być używany przez różne wątki.
// dlatego tworzymy listę "synchronizowaną", żeby np. równoległe operacje add sobie nie przeszkadzały.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment