TTrack – Założenia i wstępna konfiguracja

setup

Witaj w drugim wpisie konkursowym dzisiaj pokażę Ci wstępną konfigurację projektu oraz założenia projektowe.

 

 
 

Założenia:

 

Należy sobie stawiać realne cele:) a więc podstawowe założenia projektowe.

  • Dostęp do aplikacji webowej dostęp posiada kierownik zespołu który zarządza pracownikami,
  • dodaje, edytuje, usuwa pracowników,
  • wyznacza zadania pracownikom moze je oznaczac na mapie,
  • ma dostep do lokalizacji pracownikow,
  • dostęp do aplikacji mobilnej ma pracownik,
  • ma jednego kierownika,
  • wysyła statusy zadań kierownikowi.

Mam nadzieję, że uda się je szybko ogarnąć i dodać inne ciekawsze funkcjonalności.

 

Konfiguracja projektu:

 

Dla kogoś kto nigdy nie robił nic z mavenem i aplikacjami webowymi może być problemem uruchomienie pierwszego programu. I nie ma w tym nic złego bo jak się coś zaczyna to zawsze się na początku nic nie wie – złota myśl:). Osobiście gdy zaczynam uczyć się nowej technologii czy poprostu nowych rzeczy w życiu to kilka dni przęglądam dostępne informacje z kilu źródeł, czyli np tutoriale i ksiązki nie przerabiam ich tylko przeglądam aby wgłębić się w temat.  Zazwyczaj mój pierwszy hello world jest syntezą kilku informacji a nie tylko jednego tutorialu.

Ale do rzeczy moja konfiguracja do rozpoczęcia pracy ze springiem. W Inteliij tworzę nowy projekt Mavena pierwsze co robię to otwieram pom.xml i dodaje rzeczy które są mi potrzebne. Tak wygląda mój pom początku:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.gert</groupId>
    <artifactId>TTrack</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.3.6.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>7.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.0</version>
        </dependency>

        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>21.0</version>
        </dependency>
    </dependencies>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <path>/</path>
                        <contextReloadable>true</contextReloadable>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>


</project>

Następnie tworzę dwa pakiety w javie: conifg i controllers:

Selection_023

RootConfig:

package com.gert.config;

import org.springframework.context.annotation.Configuration;

/**
 * Created by gert on 27.02.17.
 */
@Configuration
public class RootConfig {
}

WebConfig:

package com.gert.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

/**
 * Created by gert on 27.02.17.
 */
@Configuration
@EnableWebMvc
@ComponentScan("com.gert")
public class WebConfig extends WebMvcConfigurerAdapter{

    @Bean
    public InternalResourceViewResolver resolver(){

        InternalResourceViewResolver resolver = new InternalResourceViewResolver();

        resolver.setPrefix("/");
        resolver.setSuffix(".jsp");

        return resolver;
    }
}

WebInit:

package com.gert.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

/**
 * Created by gert on 27.02.17.
 */
@Configuration
public class WebInit extends AbstractAnnotationConfigDispatcherServletInitializer{

    protected Class<?>[] getRootConfigClasses() {
        return new Class<?>[]{RootConfig.class};
    }

    protected Class<?>[] getServletConfigClasses() {
        return new Class<?>[]{WebConfig.class};
    }

    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
}

HomeController:

package com.gert.controllers;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * Created by gert on 27.02.17.
 */

@Controller
public class HomeController {

    @RequestMapping(value = "/")
    public String home(){

        return "home";
    }
}

home.jsp

<html>
<head>
<title></title>
</head>
<body>
Hello World
</body>
</html>

Tworzę jeszcze plik home.jsp czyli mój widok i tyle.  Aby uruchomić hello worlda edytujemy jeszcze konfiugracje uruchomieniową aplikacji. Wybieramy mavena i dopisujemy tomcat7:run.

tomcatRun

Mamy skonfigurowany podstawowy projekt teraz w pliku pom będziemy dodawać na bieżąco zależności które będą nam potrzebne. Kolejną ważną rzeczą którą będe wykorzystywał jest baza danych czyli u mnie postgreSql. W terminalu linuxa

  • sudo apt-get update
  • sudo apt-get install postgresql

Domyslny user czyli “posgtres” nie ma hasła, warto stworzyć sobie nowego usera gdzie ustawimy sobie hasło.

  • sudo -u postgres createuser –superuser $Twoj_user
  • sudo -u postgres psql
  • postgres=# \password $Twoje_haslo

Nastepnie po wpisaniu psql w konsoli możesz zarządzać bazą nie będe wchodził w szczegóły bo jest sporo tutoriali na ten temat i sam z nich jeszcze korzystam:). Dodam że do zarządzania bazą możesz wykorzyśtac pgadmin3 wygląda to wtedy mniej więcej tak:

pgadmin3

Aby zainstalować interfejs gui wklep to w terminal:)

sudo apt-get install pgadmin3

To chyba tyle na dzisiaj następny wpis w czwartek.

Cześć:)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *