Fortress Java Learning Portal

Spring Boot • Web • Spring Cloud • Dependency Injection

Spring Annotations

Fortress Java Learning Portal format

This page preserves the terminology and organization of the uploaded source. The source covers Spring annotations, configuration, dependency injection, Spring Boot basics, MVC/Web, Cloud and related concepts.

Source Page 1

Spring Framework 4 Cheat Sheet

Modules

Core

spring-core

spring-beans

spring-context

spring-expression

AOP and Instrumentation

spring-aop

spring-aspects

spring-instrument

spring-instrument-tomcat

Messaging

spring​-me​ssaging

Data Access​/In​teg​ration

spring-jdbc

spring-tx

spring-orm

spring-oxm

spring-jms

Web

spring-web

spring-webmvc

spring-webmvc-portlet

spring-websocket

Test

spring​-test

http:/​/do​cs.s​pr​ing.io​/sp​rin​g-f​ram​ewo​rk/​doc​s/c​urr​ent​/sp​rin​g-

f​ram​ewo​rk-​ref​ere​nce​/ht​ml/​ove​rvi​ew.h​tm​l#o​ver​vie​w-m​odules

Spring MVC - Controller

@Controller

Annotation to indicate that the class is a controller

class.

@RestController

A conven​ience annotation that is itself annotated

with @Cont​roller and @Resp​ons​eBody. Used

in contro​llers that will behave as RESTful

resour​ces.

@RequestMapping

Annotation to be used on methods in

@Rest​Con​tro​ller classes. You can provide an

URI to be served as RESTful service.

@ModelAttribute

Annotation used to bind values present in views.

Config​uration

@Configuration

Annotation used to provide conf​igu​rat​ions.

Config​uration (cont)

@Bean

Annotation that acts like a prov​ider where you can define how

the bean is inst​ant​iated when a inje​ction of that type is

requested. Instances of @Bean annotated methods will act as

sing​let​ons.

Properties Evaluation Sequence

Command-line arguments

java -Dproj​ect.na​me=Test -jar

app.jar

System properties

Syste​m.g​etP​rop​ert​ies()

Enviro​nment Variable

export PROJEC​T_N​AME​=Test

External proper​tie​s/yml

file

proje​ct.n​am​e=Test

Internal proper​tie​s/yml file

proje​ct.n​am​e=Test

The default proper​tie​s/yml files are appl​ica​tio​n.p​rop​ert​ies and

appl​ica​tio​n.yml and they are located in /src/​res​our​ces.

Spring Boot Initia​lizer

http://start.spring.io

Web service that allows the user to specify the

project metadata and depend​encies as well as

download the initial structure.

Spring CLI

A CLI tool that interacts with http​://​sta​rt.s​pr​ing.io

service to scaffold a new project.

Spring Tool Suit

Eclips​e-based IDE that also interacts with

http​://​sta​rt.s​pr​ing.io to scaffold a new project.

Intellij IDEA

Intellij also provides a way of creating a new project

via http​://​sta​rt.s​pr​ing.io.

Spring Boot - Auto Config​uration

@ConditionalOnClass
@Cond​iti​ona​lOn​Cla​ss

(​Tom​cat.cl​ass)

Only available if

the Tomcat

class is found in

the classpath.

@ConditionalOnProperty
@Cond​iti​ona​lOn​Pro​pe

r​ty(name =

"​tom​cat.ve​rsi​on",

matchI​fMi​ssing =

true)

Only available if

the property

tomca​t.v​ersi

on is set to true.

Auto config​uration is just the combin​ation of @Conf​igu​ration and

@Cond​iti​onal* annota​tions in order to correctly register beans.

By danielfc

Learn to solve cryptic crosswords!

Source Page 2

Spring Framework 4 Cheat Sheet

Archit​ecture

Dependency Injection

@Resource

Annotation used to inject an object that is already in the

Appl​ication Context. It searches the instance by name.

It also works on setter methods.

@Autowired

Annotation used to inject objects in many possible ways,

such as: instance variable, constr​uctor and methods.

It does not rely on name as @Reso​urce, so, for

multiple concrete implem​ent​ations, the @Qual​ifier

annotation must be used with it.

@Qualifier

Annotation used to dist​ing​uish between mult​iple

concrete implem​ent​ations. Used alongside with

@Auto​wired annotation that does not rely on name.
@Primary

Annotation used when no name is provided telling Spring

to inject an object of the annotated class first. Used

along with @Comp​onent.

@Component

Generic stereotype annotation used to tell Spring to

create an instance of the object in the Appl​ication

Context. It's possible to define any name for the

instance, the default is the class name as camel case.

@Contr​oller

Stereotype annotation for presen​tation layer.

@Repos​itory

Stereotype annotation for persis​tence layer.

@Service

Stereotype annotation for service layer.

Profile

spring.profiles.active

Property to be set in appl​ica​tio​n.p​rop​ert​ies in

order to tell Spring what profiles are active.

@Profile("!dev")

Annotation used to define which profile can

execute the annotated method.

Spring Boot - Basics

@SpringBootApplication

Initial annotation that comprises the following

annota​tions: @Spri​ngB​oot​Con​fig​ura​tion,

@Enab​leA​uto​Con​fig​ura​tion and
@Comp​one​ntS​can.
@Spri​ngB​oo​t​C​on​fig​ur​a​tio

n

Indicates that a class provides Spring Boot

applic​ation @Conf​igu​rat​ion.

@Enab​leA​ut​o​C​on​fig​ur​a​tio

n

Enable auto-c​onf​igu​ration of the Spring

Applic​ation Context, attempting to guess and

configure beans that you are likely to need.

@Comp​one​nt​S​can

Configures component scanning directives for

use with @Conf​igu​ration classes.

Most of the time you will need only to declare the

@Spri​ngB​oot​App​lic​ation annota​tion.

Spring Boot - Example

By danielfc

Learn to solve cryptic crosswords!

Original Visual Reference

The original PDF contains architecture/annotation diagrams. They are retained below for visual reference.

View original visual — Page 1Original PDF page 1
View original visual — Page 2Original PDF page 2