Difference between revisions of "IntelliJ IDEA"
| (12 intermediate revisions by the same user not shown) | |||
| Line 5: | Line 5: | ||
https://www.jetbrains.com/help/idea/manage-projects-hosted-on-github.html | https://www.jetbrains.com/help/idea/manage-projects-hosted-on-github.html | ||
| + | ==SPRING INITIALIZR== | ||
| + | https://start.spring.io/ | ||
| + | |||
| + | ==Plugins== | ||
| + | FindBugs-IDEA | ||
| + | |||
| + | Checkstyle-IDEA (Configure to config/checkstyle/checkstyle.xml) | ||
| + | |||
| + | SonarLint (Configure to server http://si-jenkins01.dev.setl.io:8081) | ||
==ShortCuts== | ==ShortCuts== | ||
| + | |||
| + | [https://resources.jetbrains.com/storage/products/intellij-idea/docs/IntelliJIDEA_ReferenceCard.pdf MacOs Shortcuts] ***** | ||
| Line 145: | Line 156: | ||
https://www.catalysts.cc/en/wissenswertes/intellij-idea-and-eclipse-shortcuts/ | https://www.catalysts.cc/en/wissenswertes/intellij-idea-and-eclipse-shortcuts/ | ||
| + | |||
| + | ==IntelliJ - Git Setting == | ||
| + | https://www.youtube.com/watch?v=uUzRMOCBorg | ||
| + | |||
| + | ==Tips & Tricks== | ||
| + | |||
| + | <syntaxhighlight lang="java"> | ||
| + | |||
| + | import org.slf4j.Logger; | ||
| + | import org.slf4j.LoggerFactory; | ||
| + | |||
| + | @SpringBootApplication | ||
| + | @ComponentScan("com.oasissofttech.forotherpackagebeans")//default is main class package and sub-packages | ||
| + | public SpringMainClass { | ||
| + | private static Logger LOGGER = LoggerFactory.getLogger(SpringMainClass.class); | ||
| + | |||
| + | public static void main(Stirng[] args){ | ||
| + | ApplicationContext applicationContext = SpringApplication.run(SpringMainClass.class,args); | ||
| + | |||
| + | PersonDAO personDao = applicationContext.getBean(PersonDAO.class); | ||
| + | |||
| + | LOGGER.info("{}",personDao); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | ... | ||
| + | .. | ||
| + | @Component | ||
| + | @Scope(value=ConfigurableBeanFactory.SCOPE_PROTOTYPE, | ||
| + | proxyMode = ScopedProxyMode.TARGET_CLASS) | ||
| + | public class JdbcConnection{ | ||
| + | public JdbcConnection{ | ||
| + | System.out.println("JDBC connection"); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | @PostConstruct | ||
| + | public void postConstruct(){ | ||
| + | LOGGER.info("postConstruct"); | ||
| + | } | ||
| + | |||
| + | @PreDestroy | ||
| + | public void preDestroy(){ | ||
| + | LOGGER.info("preDestroy"); | ||
| + | } | ||
| + | |||
| + | |||
| + | </syntaxhighlight> | ||
| + | |||
| + | ===application.properties file=== | ||
| + | <source> | ||
| + | logging.level.org.springframework = debug | ||
| + | logging.level.root=debug #springboot | ||
| + | spring.jpa.show-sql=true | ||
| + | spring.h2.console.enabled=true | ||
| + | </source> | ||
| + | |||
| + | ===Mockito=== | ||
| + | <syntaxhighlight lang="java"> | ||
| + | @RunWith(MockitoJUnitRunner.class) | ||
| + | public class MockitoTest{ | ||
| + | @Mock | ||
| + | DataService dataServiceMock; | ||
| + | |||
| + | @InjectMocks | ||
| + | SomeBusinessImpl businessImpl; | ||
| + | |||
| + | @Test | ||
| + | public void testCase1(){ | ||
| + | when(dataServiceMock.retrieveAllData()).thenReturn(new int[]{24,15,3}); | ||
| + | assertEquals(24,businessImpl.findTheGreatestFromAllData()); | ||
| + | } | ||
| + | .. | ||
| + | .. | ||
| + | } | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | ===Spring Unit Testing with an XML Context=== | ||
| + | @ContextConfiguration(location="/applicationContext.xml") | ||
| + | |||
| + | ===Spring Boot Actuator=== | ||
| + | <syntaxhighlight lang="xml"> | ||
| + | <dependencies> | ||
| + | <dependency> | ||
| + | <groupId>org.springframework.boot</groupId> | ||
| + | <artifactId>spring-boot-starter-actuator</artifactId> | ||
| + | </dependency> | ||
| + | <dependency> | ||
| + | <groupId>org.springframework.data</groupId> | ||
| + | <artifactId>spring-data-rest-hal-browser</artifactId> | ||
| + | </dependency> | ||
| + | </dependencies> | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | actuator url: http://locahost:8080/application - The HAL Browser | ||
| + | |||
| + | ===Spring Boot Developer Tools=== | ||
| + | no need to restart server/application, it is automatically pick up | ||
| + | <syntaxhighlight lang="xml"> | ||
| + | <dependencies> | ||
| + | .... | ||
| + | <dependency> | ||
| + | <groupId>org.springframework.boot</groupId> | ||
| + | <artifactId>spring-boot-devtools</artifactId> | ||
| + | </dependency> | ||
| + | ... | ||
| + | </dependencies> | ||
| + | </syntaxhighlight> | ||
Latest revision as of 08:13, 24 August 2018
https://www.jetbrains.com/idea/download/#section=windows
Contents
Register a GitHub account in IntelliJ IDEA
https://www.jetbrains.com/help/idea/manage-projects-hosted-on-github.html
SPRING INITIALIZR
Plugins
FindBugs-IDEA
Checkstyle-IDEA (Configure to config/checkstyle/checkstyle.xml)
SonarLint (Configure to server http://si-jenkins01.dev.setl.io:8081)
ShortCuts
MacOs Shortcuts *****
| Eclipse | IntelliJ IDEA | Description |
| F4 | ctrl+h | show the type hierarchy |
| ctrl+alt+g | ctrl+alt+F7 | find usages |
| ctrl+shift+u | ctrl+f7 | finds the usages in the same file |
| alt+shift+r | shift+F6 | rename |
| ctrl+shift+r | ctrl+shift+N | find file / open resource |
| ctrl+shift+x, j | ctrl+shift+F10 | run (java program) |
| ctrl+shift+o | ctrl+alt+o | organize imports |
| ctrl+o | ctrl+F12 | show current file structure / outline |
| ctrl+shift+m | ctrl+alt+V | create local variable refactoring |
| syso ctrl+space | sout ctrj+j | System.out.println(“”) |
| alt + up/down | ctrl + shift + up/down | move lines |
| ctrl + d | ctrl + y | delete current line |
| ??? | alt + h | show subversion history |
| ctrl + h | ctrl + shift + f | search (find in path) |
| “semi” set in window-> preferences | ctrl + shift + enter | if I want to add the semi-colon at the end of a statement |
| ctrl + 1 or ctrl + shift + l | ctrl + alt + v | introduce local variable |
| alt + shift + s | alt + insert | generate getters / setters |
| ctrl + shift + f | ctrl + alt + l | format code |
| ctrl + y | ctrl + shift + z | redo |
| ctrl + shift + c | ctrl + / | comment out lines (my own IDEA shortcut definition for comment/uncomment on german keyboard layout on laptop: ctrl + shift + y) |
| ctrl + alt + h | ctrl + alt + h (same!) | show call hierarchy |
| none ? | ctrl + alt + f7 | to jump to one of the callers of a method |
| ctrl + shift + i | alt + f8 | evaluate expression (in debugger) |
| F3 | ctrl + b | go to declaration (e.g. go to method) |
| ctrl + l | ctrl + g | go to line |
https://www.jetbrains.com/help/idea/configuring-keyboard-and-mouse-shortcuts.html
https://www.catalysts.cc/en/wissenswertes/intellij-idea-and-eclipse-shortcuts/
IntelliJ - Git Setting
https://www.youtube.com/watch?v=uUzRMOCBorg
Tips & Tricks
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@SpringBootApplication
@ComponentScan("com.oasissofttech.forotherpackagebeans")//default is main class package and sub-packages
public SpringMainClass {
private static Logger LOGGER = LoggerFactory.getLogger(SpringMainClass.class);
public static void main(Stirng[] args){
ApplicationContext applicationContext = SpringApplication.run(SpringMainClass.class,args);
PersonDAO personDao = applicationContext.getBean(PersonDAO.class);
LOGGER.info("{}",personDao);
}
}
...
..
@Component
@Scope(value=ConfigurableBeanFactory.SCOPE_PROTOTYPE,
proxyMode = ScopedProxyMode.TARGET_CLASS)
public class JdbcConnection{
public JdbcConnection{
System.out.println("JDBC connection");
}
}
@PostConstruct
public void postConstruct(){
LOGGER.info("postConstruct");
}
@PreDestroy
public void preDestroy(){
LOGGER.info("preDestroy");
}
application.properties file
logging.level.org.springframework = debug
logging.level.root=debug #springboot
spring.jpa.show-sql=true
spring.h2.console.enabled=trueMockito
@RunWith(MockitoJUnitRunner.class)
public class MockitoTest{
@Mock
DataService dataServiceMock;
@InjectMocks
SomeBusinessImpl businessImpl;
@Test
public void testCase1(){
when(dataServiceMock.retrieveAllData()).thenReturn(new int[]{24,15,3});
assertEquals(24,businessImpl.findTheGreatestFromAllData());
}
..
..
}
Spring Unit Testing with an XML Context
@ContextConfiguration(location="/applicationContext.xml")
Spring Boot Actuator
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-rest-hal-browser</artifactId>
</dependency>
</dependencies>
actuator url: http://locahost:8080/application - The HAL Browser
Spring Boot Developer Tools
no need to restart server/application, it is automatically pick up
<dependencies>
....
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
...
</dependencies>